Emacs的org-mode[日期与时间]

设定日程或期限

你可以为你的TODO项目设定时间,最普通的是日程,比如说杨威利同学需要在伊谢尔伦新年酒会上致祝酒辞。他可以用S-M-RET创建一个TODO项目。然后按C-c C-s为它设定日期和时间。按完“C-c C-s”之后,会出现一个新的小buffer(emacs的窗口),这时可以用鼠标或Shift+方向键来选取需要的日期。结果大概是这样的。

** TODO 在新年酒会上致辞。  
SCHEDULED: <2009-12-31 四>  

设定一个TODO项目如“罗马帝国衰亡史”,然后按”C-c C-d”,在出现的buffer中选中需要的日期,保存。结果是这样的。

** TODO 罗马帝国衰亡史  
DEADLINE: <2010-01-02 六>  

揗环的任务

每个人都会有一些循环的任务,比如说每两天去一次健身房,每周收拾一次房间等等,每月还个信用卡等等……针对这样的需要,只要在TODO项的时间里面,加一个repeater就可以了。

** TODO 还信用卡
DEADLINE: <2010-01-26 二 .+1m>
- CLOSING NOTE [2009-12-26 六 18:22]
:PROPERTIES:
:LAST_REPEAT: [2009-12-26 六 18:21]
:END:  

日期后面的.+1m代表这一任务在每月循环一次,当你用C-c C-t改变Item状态之后,这个项目并不会从TODO变成DONE,而是保持TODO状态,同时它的DEADLINE从12-26变成1-26,下面出现一个12-26的CLOSING NOTE,表示这个项目在12月26日被标记为DONE过。

repeater标记分为日(d),周(w),月(m),年(y)四种,同时支持在时间关键字前面添加数字,代表每n个时间周期。比如+3d表示每隔三天,+3w表示每隔三周等。

任务计时

兰迪波许教授在他的最后的讲演之后闻名全球,他还有一个演讲提到了时间的记录time log,就像记账来统计自己的金钱支出一样,时间记录也可以为于了解自己的时间花费,已优化时间的使用。

org-mode提供了一种计算每项任务花了多长时间的能力。

* DONE 艺伎
CLOSED: [2009-12-20 日 20:09]
CLOCK: [2009-12-20 日 19:32]--[2009-12-20 日 20:09] =>  0:37
CLOCK: [2009-12-20 日 18:00]--[2009-12-20 日 18:56] =>  0:56

上面这个记录了我观看BBC记录片<艺伎>的时间花费,org-mode可以记录两段时间的起止,并计算出每段的时间花费。

你需要做的就是在开始时按”C-c C-x C-i”开始计时,在需要结束计时时按”C-c C-x C-o”即可。