非欧几何的灵感

——限量版Hello World
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Emacs日程安排及calendar使用方法

Posted on 2009-04-22 17:00  Neon∮Light  阅读(934)  评论(0编辑  收藏  举报

emacs提供了一个可以用于管理日程的日历。如果你想在EMACS中使用日历这个功能,那么,可以使用M-x来打开日历的界面,这将打开本月及前后两个月的日历界面,当前的日期将高亮显示。如果想以其他月份为中心,可以使用C-u,M-x calendar,就可以实现。

emacs支持使用鼠标实现一定操作,但并不提倡使用这种方式,相对来说,更提倡使用键盘操作。比如,想退出calendar模式,可以使用q。

Calendar模式支持各种方式来更改当前日期,比如使用天,月,年等的组合。如果想改变当前月分,可以使用一些与移动有关的命令,下面是一些常见的移动当前日期的命令
(这里的“前”是指还没有到来的那一天,“后”是指已经过去的日子)
C-f:让当前日期向前一天
C-b:让当前日期向后一天
C-n:让当前日期向前一周
C-p:让当前日期向后一周
M-}:让当前日期向前一个月
M-{:让当前日期向后一个月
C-x ]:让当前日期向前一年
C-x [:让当前日期向后一年

C-a:移动到当前周的第一天
C-e:移动到当前周的最后一天
M-a:移动到当前月的第一天
M-e:多动到当前月的最后一天
M-<:移动到当前年的第一天
M->:移动到当前年的最后一天

默认情况下,星期天是一周的第一天,如果想使用周一作为一周的第一天,可以设置calendar-week-start-day的值为1.

Calendar模式支持移动多种移动到特珠日期的方式。
g d 移动到一个特别的日期
o 使某个特殊的月分作为中间的月分
.移动到当天的日期
p d显示某一天在一年中的位置,也显示本年度还有多少天。
C-c C-l刷新Calendar窗口


Calendar支持生成LATEX代码。
t m 按月生成日历
t M 按月生成一个美化的日历
t d 按当天日期生成一个当天日历
t w 1在一页上生成这个周的日历
t w 2在两页上生成这个周的日历
t w 3生成一个ISO-SYTLE风格的当前周日历
t w 4生成一个从周一开始的当前周日历
t y 生成当前年的日历

EMACS Calendar支持配置节日:
h:显示当前的节日
x:定义当天为某个节日
u:取消当天已被定义的节日
e:显示所有这前后共三个月的节日。
M-x holiday:在另外的窗口的显示这前后三个月的节日。

另外,还有一些特殊的,有意思的命令:
S:显示 当天的日出日落时间
如果想自定义这些日出日落时间,可以使用下面的方法:
(setq calendar-latitude 40.1)
(setq calendar-longitude -88.2)
(setq calendar-location-name "Urbana, IL")

设置时区可以使用下面的方法:
(setq calendar-time-zone -360)
(setq calendar-standard-time-zone-name "CST")
(setq calendar-daylight-time-zone-name "CDT")
显示农历可以使用p-C,使用农历移动日期可以使用g C,当然也可以显示其他的地区的本地日历,这里就不列举了。

当你创建了一个'~/diary'文件,你就可以使用calendar去查看里面的内容。你可以查看当天的事件,相关命令如下 :
d:显示被选中的日期的所有事件
s:显示所有事件,包括过期的,未到期的等等

创建一个事件的样例:
02/11/1989
      Bill B. visits Princeton today
      2pm Cognitive Studies Committee meeting
      2:30-5:30 Liz at Lawrenceville
      4:00pm Dentist appt
      7:30pm Dinner at George's
      8:00-10:00pm concert

创建事件的命令:
i d为当天日期添加一个事件
i w为当天周创建一个周事件
i m为当前月创建一个月事件
i y为当前年创建一个年事件

i a为当前日期创建一个周年纪念日
i c创建一个循环的事件