介绍

强大的日程管理插件,可以计划每天的行程,记录任务进度。并且和wiki-mode 结合,可以发布网页,很有成就感。

可以做的:

  • 计划任意一天的任务
  • 任务自由归类,完成的和未完成的有不同标记
  • 把信息放到尽量少的文件内,方便整理
  • 和日历结合,写日记,计划,做笔记在同一页面完成
  • 回顾+分析生活
  • 生活在文本里,节省硬盘空间
  • 养成良好生活习惯:]

总之用熟之后还是挺惊讶的,每天开电脑就开emacs,关机再关emacs。没想到这 么好用,当然前提是习惯emacs键盘操作,以及喜欢emacs的文本界面

当然evolution很好的一点是可以和time-applet结合,比较漂亮,不过为了节省 硬盘我还是删了它


使用

基本上apt安装完之后,看帮助文档慢慢学,不久就能熟练使用了。帮助文档写 的相当清楚,当然也可能因为我被emacs折磨习惯了

.emacs里有用的设置(大部分直接从帮助文档里复制的)

快捷键

(global-set-key [f3] 'calendar)
(global-set-key [f4] 'plan)

这样可以直接F3调出日历, 再F4调出当天的日程

当然,也可以加入

(plan)

来自动在emacs启动时打开日程页面,不过我可不希望一打开emacs就是这个

其它有用的键盘绑定可以自行设置,反正就照葫芦画瓢。以下是我的设置,大部 分用F5完成

(add-hook 'planner-mode-hook
          (lambda ()
            (define-key planner-mode-map (kbd "C-c C-e")
'planner-diary-insert-diary)
            (define-key planner-mode-map (kbd "<f5> SPC")
'planner-create-task)
            (define-key planner-mode-map (kbd "<f5> l")
'planner-list-unfinished-tasks)
            (define-key planner-mode-map (kbd "<f5> r")
'remember)
            (define-key planner-mode-map (kbd "<f5> x")
'planner-task-done)
            (define-key planner-mode-map (kbd "<f5> <delete>")
'planner-delete-task)
            (define-key planner-mode-map (kbd "<f5> p")
'planner-task-in-progress)
            (define-key planner-mode-map (kbd "<f5> c")
'planner-task-cancelled)
            (define-key planner-mode-map (kbd "<f5> <f5>")
'planner-task-pending)
	    (planner-deadline-update)
    (define-key planner-mode-map [(shift up)]
        'planner-raise-task-priority)
    (define-key planner-mode-map [(shift down)]
        'planner-lower-task-priority)
    )
)

如果要启用planner自己的额外快捷键,加入以下。用法参看帮助文档,我记不 住那么多所以没有用

(planner-install-extra-task-keybindings)
(planner-install-extra-context-keybindings)

整合日记模式

(require 'planner-diary)
(add-hook 'diary-display-hook 'fancy-diary-display)
(setq planner-diary-use-diary t)
(planner-diary-insinuate)
(setq planner-day-page-template "* Tasks\n\n\n* Schedule\n\n\n*
Diary\n\n\n* Notes")

整合日历

(planner-insinuate-calendar)

存盘的时候自动发布html

直接复制自Sacha(维护者)的配置文件

     (defun sacha/emacs-wiki-auto-publish ()
       (when (derived-mode-p 'emacs-wiki-mode)
         (unless emacs-wiki-publishing-p
           (let ((emacs-wiki-publishing-p t)
                 (emacs-wiki-after-wiki-publish-hook nil))
     	(emacs-wiki-publish-this-page)))))
     (add-hook 'emacs-wiki-mode-hook
               (lambda ()
                (add-hook 'after-save-hook
                          'sacha/emacs-wiki-auto-publish nil t)))

重复任务

如果希望planner每周同一天自动加入某任务,可以用cyclic-task

(require 'planner-cyclic)

建立文件~/.diary.cyclic-tasks, 用来存储任务,语法如下:

> Saturday #B0 _Wash Clothes

这样一到周六它就会在我的任务加上洗衣服一项,其中#B表示优先权

deadline

如果想要让planner自动计算某任务离deadline有多久,可以加入

(require 'planner-deadline)

用法:

 #B   X Math765 homework (ToGetSmart) {{Deadline: 2005.12.05}}

注意Deadline:后面必须空一格

似乎deadline会在每次打开日程页面的时候计算,加上剩余天数,然后变成

 #B   X Math765 homework (ToGetSmart) {{Deadline: 2005.12.05 - 1 day}}

不过有时侯又似乎失效,反正我在planner-mode-hook里还是加上了 (deadline-update)之类的函数。个人感觉不大用的上。事实上planner-mode里 面内容比较多,所以我老是忘掉使用某些有用的东西

检查任务完成情况

task accomplishment

(require 'planner-accomplishments)

用法:

M-x planner-accomplishments-show

task overview

(require 'planner-tasks-overview)

用法:

M-x planner-tasks-overview

然后输入开始日期,回车,再结束日期。直接用数字键 1,2,3,4 切换排序方法,非常方便

不过用了很久之后终于发现以上两个插件虽然好看,但没什么意思,我也就对当 天任务的完成情况有兴趣

笔记索引

(require 'planner-notes-index)

就可以建立所有的笔记索引了

用法:

M-x planner-notes-index

EmacsPlanner 确实把我想要的都做到了

发布日历

按照帮助文档里的方法我无法发布日历,所以我删除了最后一个函数"move calendar to top",然后莫名其妙就可以了:

     (require 'planner-calendar)
     (add-hook
      'planner-mode-hook
      (lambda ()
        "Add the relevant hooks for `planner-calendar' to work."
        (add-hook 'emacs-wiki-before-markup-hook
                  'planner-calendar-insert-calendar-maybe nil t)
        (add-hook 'emacs-wiki-after-file-publish
                  'planner-calendar-create-today-link nil t)))