EMACS & 程序 编程点滴...

天下难事必作于易,天下大事必作于细

Lastupdated: 2009-10-20

使用Org-Mode来GTD

作者:Charles Cave

Using Emacs org-mode for GTD:http://members.optusnet.com.au/~charles57/GTD/orgmode.html

TOPGTD

Getting Things Done(GTD)是美国的商业顾问David Allen提倡的一种提高生产效率的系统。David Allen虽然通过各种演讲,研究会等推广它的GTD系统,但是更出名的还是他的著作《Getting Things Done》吧。企鹅出版社出版了《The Art of Stress-Free Productivity》(尽管去做: 无压工作的艺术)一书。你可以在Amazon买到。

GTD的核心,就是将你一生中需要完成的工作,收集,整理,决策,执行等形成统一的工作流。成功的关键就是,你的头脑中什么也不要放置,所有的都记录到你可以信赖的系统中。这个可信赖的系统就是一张A4纸(或者笔记本),Palm/PocketPC,或者是本文介绍的与Org-mode类似的应用程序。

TOP再见To-Do Lists,NextActions,你好!

ToDo Lists是过时的手法。在你的一生中有许多事情发生,你需要时间和精力来做出决策,这时你就可以利用GTD的方法。比如你和家人,同事的交往中,人际关系的构筑中,打电话,开会,灵感,写信等等活动都包含在内。

为了替代ToDo List, 请考虑以下两个问题:

  • 你希望得到什么结果?
  • 为了达到希望值,你将付出怎样的行动?

要回答这两个问题,需要明确地描绘出成功时的状态,以及为了达到目标需要具体什么样的行动。标出NextAction(接下来的行动)是说能简单地决定接下来做什么,尽量将时间的延误最小化。看这个list的时候时候,不需要每次决策去做什么。

TOP情境(Contexts)

就像NextAction(经常缩写为NA)本身的意思一样,需要考虑行动前后的情境。这里的情境是指在一定的制约和资源下进行活动的场所。比如,「打电话」这种情境,首先要确保电话可以使用。「Office」这种情境,是指在办公室内进行的行动。同样,「Home」指在家里面完成的活动。

对于不同的人,情境表一定是不同的。当你选择怎样的作业组合时,需要一定的实验才能做出决定,很难一次就能完善它。比如我的情境分以下几种:

  • Office(上班时的电话联络也包括在内)
  • Home(家里的电话包括在内)
  • Computer(家里的电脑)
  • DVD Watching(我从图书馆里借了许多DVD)
  • Reading(上班的电车途中)

TOP日程表(Agendas)

在GTD的手法中,像前面小节中介绍的NextAction表一样,其他很多表格被使用。David Allen在和一些人讨论的时候,或者在一些研究会上为了说明行动表的时候,经常会提到「Agendas」一词。Agendas可以作为NextAction表的一种特例。

比如,你和上司会定期地开会,为了准备下一次会议中的议题,你可以制作一个名为「Boss」的列表。如果是你领导,你也会为你的小组里的每一位项目担当者制作一份Agendas表吧。

TOPWaiting For

还有一个叫做「Waiting For」的列表。我们经常在完成某一作业,或者将某一任务委托别人去做的时候,需要等待回应。像这样的信息放入WaitingFor列表,对以后回想起来有很大的帮助。

TOPProjects

Project是指需要2步NextAction作业才能完成的任务。 当你检查你需要完成的任务的时候,你一定是从你希望的结果出发考虑NextAction的。这里并不是说需要你考虑所有应该执行的NextAction,只是开始的工作。

比如,“晚宴”这个Project。有一些NextAction是属于「Phone」这个情境:「给Bill和Hilary打电话」,「给Valerie和Mark电话」等。又比如「Shopping」这个情境,像是「买瓶红酒」这样的行为归入NextAction。

每周检查项目进度的时候,以checklist的形式制作一张项目的表格。这样,你的项目中就做出了各种各样的NextAction,从而确认不同的项目的完成程度。

TOP日历(Calendar)

日历只是在需要记录有特别的日子或者时间信息时使用。日历不是用来提醒完成任务而记录在以前计划好的to-do表的。而是用来记录如约会,会议等固有信息(比如生日)的。

TOP备忘录(Tickler File)

这里记录一些对于将来行为有帮助的项目。像是基于软件的系统一样,这里常常使用43个目录(12个月+31日)的形式。比如,将每个月20日的账单放入「20」这个标签的目录中。得到圣诞卡的人员名单也应当放入「12月」这个标签的目录下。

TOP将来/也许(Someday/Maybe)

你不可能在一天之内做完所有的事情。所以,「Someday/Maybe(某天/也许)」表中记录你想做的,但是现在还没有安排的事情。除了将来要做的,想法,创意什么的也可以在内。在每周浏览,检查的时候,这张表会频繁的更新。这里记录的项目,也许成为现实的Project,或者将现实的Project,NextAction放入以后的某个时候去做。

TOP现在做什么呢?

决定接下来做什么的时候,应该首先考虑你有多少可利用的时间,又有多少精力等客观情况吧。正因为你每周会检查一次你的NextAction表,这可以作为一种手法,来指导你每周的行动方向。在家的时候,你不会被OFFICE这个情境中的项目所干扰,而是专心致志地检查HOME表。

TOPWeekly Review(每周回顾检查)

作为GTD系统过程的核心,所有的Project,NextAction表,WaitingFor项目每周都要被回顾检查。在不同的Project中,用来明确下一步的行动。

TOPMind Sweep(清空大脑)

GTD的目标是将你头脑中的东西全部取出,保存到外部的可信赖的系统中。就是说,为了集中精力去完成任务,最大限地准备你的大脑。清空大脑,是为了使你专心于当前要完成的事,有效地利用大脑的一种方法。

TOPEmacs

Emacs是一种编辑器,具有高度的扩展性,可定制,实时表示等特性。(引用自Emacs的简介)。Emacs历史可以追述到1970年,并且在UNIX系统上有受欢迎。Emacs的核心是Lisp语言的解释器,这是它作为编辑器功能扩张的基础。Org-mode就是这样一个扩展的例子。

Emacs支持Windows,Linux,Mac-OS X以及其他UNIX操作系统。

TOPOrg-mode

利用Org-mode,可以保存笔记,管理项目,实现高速且高效的文本编辑系统。Org-mode基于Emacs的outline-mode,具有强大的功能且对应高亮显示代码。如下图:

Org-mode的核心部分是Outline,分配标签(情境的设定),以分层的构造组织内容,以及按目录形式使用日期属性等。可利用段落折叠的功能查看,编辑文章,从而只显示关联部分的内容。

TOP标题

以一个或几个星号开始一个新的段落,后面跟一个空格和标题题目,来表示一个标题。星号的个数决定了段落的阶层等级。例如:

1
2
3
4
5
6
#+STARTUP: showall
* Colors
** Red
This is a content for the Red headline
** Green
** Blue

TOP表示不表示

用「Shift-TAB」快捷键可以显示/隐藏文件内容1。在某个标题下按TAB键,可以切换之下的子标题和子标题的内容。

下面有3个抓图,表示澳大利亚12个月的outline。最左边显示了最上一级的的标题,中间显示了所有的标题,最右边显示了所有的标题以及对应的内容。

TOP结构化编辑

标题(行首有一个或多个星号的行)与这之下的行(不以星号开始的行)基于大纲(Outline)来编辑,按照「结构化编辑」使用一系列的命令。

Org-mode提供了许多结构化编辑的命令来提升和降低标题和子树,或者向上,下移除分支,拷贝,粘贴,删除子树等。

TOP添加和显示标签

添加提示标签使用「C-c C-c」命令。可以参照上面的截图。标签支持自动补全功能,比如你只要输入「C],然后按下tab键,自动补全为「COMPUTER」。标签表是通过扫描buffer来建立的。你可以只指定标签的缩略词来快速选择。

TOP表示NextAction表

「C-c \」命令是用来检索标签的快捷键,利用它,将制定的标签以树的形式抽出。树的形式抽出是指将文档尽量折叠,只是将被选择信息的标题,内容表示出来。

检索标签的时候,指定单一关键词(比如HOME)或者用布尔只表示。比如像「HOME|COMPUTER」一样用「&(and)」或「|(or)」来表示也可以。

下面是一个以「HOME」为关键词,检索到得结果:

TOPTodo tags, DONE and Archiving.(Todo标签,DONE和存档)

Org-mode提供了利用Todo标签给标题添加标签的功能,并提供了表示Todo标签和结束标志的命令。我没有使用该功能来管理我的行动表格,而是考虑到情境,时间,精力来选择NextAction。

TOP设置GTD文件

我的所有Project,task,行程表,将来/也许等表格都在1个文件中保存。
TOP文件开头

在我的文件中头部,记录了下面3行内容。文件名为「mygtd.org」。

1
2
3
#+STARTUP: overview
#+TAGS: OFFICE(o) COMPUTER(c) HOME(h) PROJECT(p) READING(r) DVD(d)
#+STARTUP: hidestars

第1行是指定Org-mode当文件被打开时,只显示最顶级的标题。

第2行是我使用的情境表(contexts)。圆括号中是为了快速选择而设定的缩写。输入「C-c C-c」命令,在相应分类中输入对应文字即可。

第3行是为了便于阅读,将标题前面的星号隐藏起来。2

TOP设计非限制的结构

为了方便回顾你的项目,责任,以及人生中的各个细节你需要经常尝试构建不同的文件结构。标签的分类虽说是很有用的部分,但是对于标题的排序和构造来讲还是不太重要。

作为方法之一,你可以将重要的领域,工作,家庭,按责任划分为不同的标题。列出你的家族成员姓名和活动的表格。每个项目作为一个标题,每周检查回顾这个文件的价值将是checklist的两倍。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#+STARTUP: showall
#+STARTUP: hidestars
* Miscellaneous tasks
** Ring Service Station to book car for service :PHONE:
** Send email to Bill regarding sales order     :COMPUTER:

* Emily
This headline is to remind me to check on my daughters
school activities!
** School subjects
** Viola
** Piano
** School Certificate Exam preparation
* Work
** Work Prject 1
*** Next action item                            :OFFICE:

* Home
** Ready for Anything (David Allen) reading project
*** Read Chapter 1                              :READING:
* DVDs to watch
** Casablanca                                   :DVD:
** King Kong                                    :DVD:

* Someday/Maybe
** Books I would like to read
*** Life - A users manual (Georges Perec)
** Movies I want to see
** Restaurants I want to try
** DVDs I would like to hire
*** Godfather III
*** Memoirs of a Geisha
TOP清空大脑

为了最高效率地使你专心于所要做的一切事情,做好的方法是在文件中使用「mind-sweep」。文件的最后写一个标题Mind Sweep,之后的行用2个星号开始。

1
2
3
4
5
#+STARTUP: showall
* Mind Sweep
**   Ring Bill about that meeting
**   Change tap washer in laundry
**   Pay membership subscription.

设置一个时钟和警报,化5分钟在你的大脑中考虑所有你要做的事。考虑项目的时候,再写了简短的说明之后,键入「Alt-Enter」,就可以开始新一行的标题,且与现在的标题在同一等级。

将你大脑中所有的都取出,简单地开始工作吧。如果警报响了,就浏览你的表格,加上标签,将其转移到文件中适当的栏目中。

TOP源代码的控制与备份
为了记录每天的变更,我用SVN管理「mygtd.org」这个文件。在家里和办公室,用USB存储器或者CD保存着它的备份。
TOP访问我的GTD文件, 快!

为了快速的打开自己的GTD文件,我在.emacs文件中追加以下代码。输入「M-x gtd」命令之后,在新的窗口中就打开了我的Org-mode文件。

1
2
3
4
 (defun gtd ()
   (interactive)
   (find-file "c:/homes/charles/gtd/gtd/mygtd.org")
 )

TOP收集

为了记下突发的灵感和想法,我使用IndexBox(5x3寸大小的盒子)来保存他们。我经常将想法,决定写到卡片放到IndexBox中。每周,我会检查回顾这些卡片,并与GTD文件一起更新。

TOP日历

因为我将时间表相关的工作,比如预定,还书的日期,和家里人的活动,孩子学校的活动等都记录到了随身的笔记本上。所以没有用Org-mode的时间表功能。

关于对在标题上添加时间表的功能,请参照Org-mode的文档。「C-c a」可以显示日程相关的命令列表,可以按日期,时间排序你的工作并显示指定日期的项目等。

TOP轻便的Next Action表

我喜欢将不同情境的NextAction表格以单纯的形式打印出来,并随身携带。另外,为了读取Org-mode形式的GTD文件,并按情境做成NextAction列表,我写了一个Perl脚本文件。(orghip.pl

使用这个脚本,先将PROJECT表格表示以后,再将OFFICE情境的表格表示,最后将剩下的标签标示出来。

项目表示的顺序是按不同的情境来排序,相同的项目可以分配多个不同的情境。

下面是我的GTD文件例子:mygtd.org

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Date Printed: Sun Sep  3 14:13:33 2006

PROJECT:
[ ] IPTM 9 Testing  (Beta Release)
[ ] Learn to typeset music with Lilypond
[ ] C# Windows Forms Programming
[ ] Learn to Inkscape
[ ] GTD Implementation


OFFICE:
[ ] Install latest Ethereal
[ ] Retest bugs in RESOLVED status
[ ] Go to Post Office and buy stamps
[ ] Ring Dentist to change appointment


HOME:
[ ] Picture hooks in lounge room
[ ] John Byrne Book - work through


COMPUTER:
[ ] Typeset "Eleanor Rigby" for Katie
[ ] Typeset piano part of Sicilienne
[ ] Speech timer (use Egg Timer as basis)
[ ] Note entry program for LilyPond
[ ] Study Tutorial 1
[ ] Learn org-mode properly
[ ] Write and publish tutorial on org-mode


DVD:
[ ] Howl's moving castle DEADLINE: <2006-09-07 Thu>
[ ] Fantasia DEADLINE: <2006-09-15 Fri>


READING:
[ ] Review "Prognosis User guide"

TOP参考

TOPGTD

TOPEmacs

TOPOrg Mode


1. 译注:在显示全文标题与显示内容间切换

2. 译注:保留最后一个星号,其前面的星号颜色变暗,更加突出标题的层次性。

© www.yifeiyang.net
net tracking

                                                                                                 stats