Emacs下日程管理GTD
GTD(Geting Things Done)是美国商业顾问David Allen提倡的一种提高生产效率的系统,它可以帮助你缓解压力,是心情平静,专心地工作和学习。使用GTD,将你现在所想到的,计划到的完全用目录表格的形式记录下来,并通过一系列系统的方法整理,回顾做成的内容。
Table of Contents
1 前言
如果你想要高效地使用GTD系统,请谨记下列方法,它可以帮助你快速把握精髓。
系统的收集你所关心的和必须要做的所有事情。
这个系统包括所有的东西,包括笔记本,邮件或者身边一切可以记录的东西。总之,在这个阶段,你需要将你脑袋中所有的想法全部倒出来。
将记录下的事情分类
这一步通常是每天必须执行的。它的作用就是将前期混乱的想法整理归档,以便后期处理,在这一步,你可以将无用的不清晰的想法去除。
确定下一步该做什么
为了更加容易的执行任务,用明确的动词定义目的和行为。它的作用就是规划好下一步该做什么,防止目的不清晰。
归档已完成的想法
这样有助于清理当前文件的内容,专注与要完成的事情。
每周回顾
定期回顾做过的事情,这有助于帮你理解和积累。
2 remember.el
这个插件是为了快速记录而设计的,GTD的大部分基础工作就是靠它实现的。在emacs23.3以后,它就自带了remember mode,我们要做的就是将它绑定到方便的快捷键上,以便于日常使用。我这里是将C-c-c绑定到remember上,下面是绑定代码。
(global-set-key "\C-cc" 'remember)
3 GTD流程
我这里为了删繁就简,没有想某些介绍上面使用了很多文件来装各种想法,而仅仅使用三个文件。一个inbox.org装载所有的Tasks Books Calender Project,另外一个finished.org装载完成的任务,最后一个canceled.org装载取消的任务。下面逐个介绍每个模板对应的功能。
3.1 Tasks
Tasks主要就是平常要完成的小事,比如写完某篇文章,帮助某人重装系统等等可在很短的时间内完成的小事。
3.2 Books
Books就是平时阅读书籍的一个日程安排,比如具体读到第几章,是否完成阅读任务等等。
3.3 Calender
Calender是平时一些比较重大的节日,比如老婆的生日,朋友的聚会等等可能需要一段时间才能完成的事情。
3.4 Project
Project是平时一些项目的进程和安排。
4 GTD 收集项目模板
根据上面的介绍,我专门设计了一个模板来收集相应的事件。
;; GTD 收集项目的模板设置 (org-remember-insinuate) (setq org-directory "~/GTD/") (setq org-remember-templates '( ("Task" ?t "** TODO %? %t\n %i\n %a" "~/GTD/inbox.org" "Tasks") ("Book" ?c "** %? %t\n %i\n %a" "~/GTD/inbox.org" "Book") ("Calendar" ?c "** %? %t\n %i\n %a" "~/GTD/inbox.org" "Calender") ("Project" ?p "** %? %t\n %i\n %a" "~/GTD/inbox.org" "Project"))) (setq org-default-notes-file (concat org-directory "/inbox.org"))
当你键入C-c-c的时候,它会提示选择那个模板,然后在对应的模板输入相应的内容,接着C-c C-c就会保存到inbox.org中。
5 设置TODO关键字
我只需要三个关键字,一个TODO,一个CANCELED和一个DONE。这样可以简化整个流程。
;;设置TODO关键字 (setq org-todo-keywords (list "TODO(t)" "|" "CANCELED(c)" "DONE(d)"))
6 转接
在同文件之间转接很简单,仅仅需要C-c C-w即可。而在不同文件之间转接,则需要下面的配置。
我的配置实现了在三个文件之间互相转接,非常简单,只需要键入C-c C-w选择相应标题即可。
;; 将项目转接在各文件之间,方便清理和回顾。 (custom-set-variables '(org-refile-targets (quote (("inbox.org" :level . 1)("canceled.org" :level . 1) ("finished.org":level . 1)) )))
7 GTD 应用
每天晚上,把明天要做的事情全部罗列到inbox.org中,做好分类。第二天的时候,当你有任何想法的时候,可以快速键入C-c-c记录下你的ideas。然后将完成的放入finished.org中,取消的内容放入到canceled.org中。
8 GTD 快捷键
8.1 快速启动remember
Ctrl-c-c快速启动remember
(global-set-key "\C-cc" 'remember )
8.2 快速查看inbox.org
很多时候,你需要查看你所要做的事情,因此使用快捷键快速访问该文件非常方便。我这里使用C-c-z来快速查看inbox。
;; 快速打开inbox (defun inbox() (interactive) (find-file "~/GTD/inbox.org")) (global-set-key "\C-cz" 'inbox)
8.3 快速启动agenda
下面我定义了快速查看日程表的快捷键。
;; 快速启动 agenda-view (define-key global-map "\C-ca" 'org-agenda-list) (define-key global-map "\C-ct" 'org-todo-list) (define-key global-map "\C-cm" 'org-tags-view) ;;显示他们的内容 (setq org-agenda-files (list "~/GTD/inbox.org" "~/GTD/inbox.org" "~/GTD/finished.org"))
9 打开emacs自动显示日程表
下面的代码可以在新开启的emacs中显示agenda日程表,非常方便。
;;开机自动显示日程表 (org-agenda-list t) ;;关闭其它窗口 (delete-other-windows)