用Org-mode實現(xiàn)GTD
有了Org-mode強大的任務(wù)管理功能,再配合其他一些Emacs插件,可以很容易實現(xiàn)個人時間管理(GTD)。 如果不了解GTD,這里 可以讓你在兩分鐘之內(nèi)對GTD有一個初步的認(rèn)識。
Table of Contents
1 如何進行GTD
如GTD精要 中所述,GTD包括收集、整理、組織、回顧、執(zhí)行等環(huán)節(jié)。各個環(huán)節(jié)都需要工具的支持:
1.1 收集
任何需要關(guān)注的事件,如mail, 電話,IM,口頭交流,網(wǎng)頁,文檔,想法等,都有可能產(chǎn)生新的任務(wù)。收集環(huán)節(jié)要把這些需要關(guān)注的事件都記錄下來。
所以需要一個收集箱(Inbox),能夠隨時快速啟用,記錄需要的信息 。
1.2 整理
在合適的時間梳理收件箱中的信息,拋棄掉沒用的垃圾和暫時不用考慮的參考信息,剩下的就是需要關(guān)注的任務(wù)。整理階段的三種處理方式是:
- 既不需要處理又無保留價值的信息,直接舍棄
- 不需要處理但有保留價值的信息,歸檔留存
比如,一篇有用的資料,以后可能會用到,需要歸檔已被查閱;一個很好的想法但由于時間、前提條件、考慮程度等因素不能馬上投入行動,需要記錄下來等等。
- 需要處理的信息,創(chuàng)建一個任務(wù)
根據(jù)以上三種情況,整理階段需要實現(xiàn) :
- 刪除無用的信息
- 將信息歸檔
- 創(chuàng)建任務(wù)
1.3 組織
創(chuàng)建任務(wù)時,要有一個快速的判斷,包括what(做什么),who(誰來做),when(什么時候做),where(什么地點處理),why(為什么要做,可以用原始消息作為原因),how(如何做),how much(需要多長時間)。 這個判斷要非常迅速,并根據(jù)判斷的結(jié)果對任務(wù)進行組織,以便后來的處理和查詢,通常按照可以這樣的步驟分析:
- 該任務(wù)是否屬于一個項目?如果是,首先打上項目標(biāo)記
- 該任務(wù)能否在2分鐘完成?如果是,馬上處理,然后將任務(wù)標(biāo)記為“已完成”
- 根據(jù)重要性和緊迫性,為該任務(wù)劃分優(yōu)先級
- 該任務(wù)是否需要別人處理?如果是,通知對方,然后將任務(wù)標(biāo)記為“等待中”
- 需要自己處理的任務(wù),馬上判斷處理的地點/場合,并標(biāo)記
- 對于能夠確定時間的任務(wù)(日程安排),標(biāo)記計劃處理時間,如果有截止日期,也標(biāo)記上
根據(jù)上述步驟,組織階段需要的功能包括 :
- 將任務(wù)歸入不同的工作清單
- 為任務(wù)增加標(biāo)記
- 定義任務(wù)的完成狀態(tài)
- 為任務(wù)定義優(yōu)先級
- 為任務(wù)設(shè)定時間點
1.4 回顧
在合適的時機檢查所有的任務(wù),根據(jù)實際情況進行處理。建議的做法包括:
- 每日回顧 每天早上首先查看當(dāng)日的日程表,然后檢查待辦任務(wù)清單,根據(jù)實際情況和當(dāng)日的時間安排,以及當(dāng)日的行程(地點),決定一天的工作計劃。
- 周期性回顧 可以是每周,每月或更長的時間周期?;仡櫼欢螘r間內(nèi)所完成的事情,做出總結(jié);同時根據(jù)實際情況的變化,調(diào)整下一階段的計劃。
- 項目回顧 項目是一系列任務(wù)的組合,并且任務(wù)之間存在依賴關(guān)系。根據(jù)項目的時間點,在適當(dāng)?shù)臅r機回顧整個項目的相關(guān)任務(wù), 進行總結(jié)或計劃。
可以遵循”六個高度檢視法“:
- 5萬英尺+:人生目的和價值觀(面臨重大變化和轉(zhuǎn)折時)
- 4萬英尺:3~5年的展望(建議每年檢視)
- 3萬英尺:1~2年的目標(biāo)(建議每季檢視)
- 2萬英尺:責(zé)任范圍(建議每月檢視)
- 1萬英尺:當(dāng)前的項目(建議每周檢視)
- 跑道:下一步行動(建議每日檢視)
前3個較低層次的內(nèi)容大多是針對事物當(dāng)前狀態(tài)(行動、項目、職責(zé)), 再向上的層次則主要涉及指導(dǎo)方向、目標(biāo)取向等方面,需要在恰當(dāng)?shù)臅r機去關(guān)注需要關(guān)注的方面,長遠規(guī)劃,掌控愿景,保持全方位的平衡。
回顧階段需要 :
- 按時間段檢索任務(wù)
- 按項目檢索任務(wù)
- 處理任務(wù)間的依賴關(guān)系
1.5 執(zhí)行
根據(jù) 情境是否合適 、 時間是否夠用 、 精力是否充沛 、 任務(wù)是否重要 四個原則來決定要進行哪項任務(wù)。 因為經(jīng)過前面的步驟已經(jīng)周密嚴(yán)謹(jǐn)系統(tǒng)地考量過各項任務(wù),所以此時只需要用直覺判斷即可??梢詤⒖肌彼南笙薹▌t“:
- 給出任務(wù)的定性: 重要/不重要, 緊急/不緊急
- 按照”先輕重,再緩急“的原則,將任務(wù)按照”重要且緊急-重要不緊急-不重要但緊急-不重要不緊急“的順序排序
- 對于劃分到同一類型的任務(wù),人為區(qū)分”高、中、低“的優(yōu)先級
- 處理原則:
- 重要且緊急:盡早動手,緩解壓力
- 重要不緊急:盡早計劃,逐步完成
- 不重要但緊急:尋求幫助,設(shè)定截止時間
- 不重要不緊急: 冷卻處理
每完成一項任務(wù),就將該任務(wù)標(biāo)記為“已完成”,并歸檔。
為了幫助判斷,需要支持任務(wù)的篩選、搜索和排序 。
2 用Org-mode實現(xiàn)GTD
前面已經(jīng)列出了GTD工具應(yīng)該具備的功能,用Org-mode可以很好地實現(xiàn)這些功能,從而將Org-mode當(dāng)做GTD工具。
2.1 文件的劃分
Org-mode管理的基本單位是文件,盡管可以將所有的任務(wù)放到同一個文件中,但這樣不利于管理,所以要首先規(guī)劃文件的劃分。
我根據(jù)自己的需要,設(shè)計了6個文件:
- inbox 收件箱,用于收集未整理的信息
- task 待辦事項,記錄所有未完成的事項。但不包括項目內(nèi)容。
- Tasks 任務(wù)
- 沒有時間點的事項為“待辦事項”
- 有時間點的待辦事項為“日程安排”
- 有時間間隔的待辦事項為“周期性任務(wù)”
- Ideas 想法
- Tasks 任務(wù)
- finished 完成的任務(wù)會遷移到這里
- Tasks 完成的任務(wù)
- Journal 日志,按照時間范圍組織結(jié)構(gòu),可以將完成的任務(wù)轉(zhuǎn)移到這里
- note 筆記,臨時存儲一些以后可能會用到的資料。note會逐步轉(zhuǎn)移到真正的筆記本中
- trash, 回收站,取消的任務(wù),不需要的信息和資料等遷移到這里,等待刪除,按類型區(qū)分
- Tasks
- Ideas
- Notes
- project,項目,專門收集非單獨的,項目相關(guān)的事項。完成的項目實現(xiàn)不會遷移到finished中,項目日志和總結(jié)等都在這個文件中完成
- 每個項目一條,以項目名稱/簡稱作為標(biāo)簽
- 統(tǒng)一的標(biāo)簽:Proj
2.2 任務(wù)狀態(tài)
狀態(tài)(快捷鍵) | 完成狀態(tài) | 說明 | 回顧周期 |
---|---|---|---|
無狀態(tài)標(biāo)示尚未開始整理,一般位于Inbox | |||
TODO(t) | 最基本的任務(wù)狀態(tài),現(xiàn)在要做,但還沒計劃做的時間 | ||
NEXT(n) | 下一步行動,還未開始計劃 | ||
SOMEDAY(s) | 想法,還沒決定是否開始行動 | ||
Done(d) | 是 | 已經(jīng)完成,需要記錄完成時間和備注說明,轉(zhuǎn)移到finished.org | |
Abort(a) | 是 | 取消的任務(wù),需要說明取消原因,轉(zhuǎn)移到trash.org的相應(yīng)節(jié)點中 | |
WAITTING(w) | 等待其他人完成 |
任務(wù)狀態(tài)在多個文件中都會使用,所以要在.emacs中定義(而不是單個.org文件中)
(setq org-todo-keywords '((sequence "TODO(t!)" "NEXT(n)" "WAITTING(w)" "SOMEDAY(s)" "|" "DONE(d@/!)" "ABORT(a@/!)") ))
2.3 標(biāo)簽設(shè)計
標(biāo)簽包括幾組:
- 情境標(biāo)簽,表明該任務(wù)應(yīng)該在何種環(huán)境下完成
- @Office 辦公室
- @Home 在家
- @Computer 有計算機的時候
- @Call 打電話
- @Way 在路上或外出
- @Lunchtime 午休時間
- 分類標(biāo)簽
- 所有的項目具有標(biāo)簽”project“
- 其他的分類自行定義
2.4 TODO 屬性設(shè)計
2.5 初始化文件
為了使上面的設(shè)計能夠生效,對于有些文件需要進行初始化,增加配置信息。還可以包含一些例子。
- task.org
- finished.org
- project.org
2.6 定義轉(zhuǎn)接(Refiling)
使用文件管理GTD,一定會需要將標(biāo)題從一個節(jié)點移動到另一個節(jié)點。
org-mode 提供的 C-c C-w 可以方便地在同一文件內(nèi)移動節(jié)點。
對于不同文件之間的移動,也可以通過 配置來實現(xiàn)快速移動,下面是一個例子:
'(org-refile-targets (quote (("newgtd.org" :maxlevel . 1) ("someday.org" :level . 2))))
通過這樣的設(shè)定,可以表示出「someday.org」文件中第二階層的標(biāo)題和「newgtd.org」文件中第一階層的標(biāo)題。
TODO
3 使用場景
3.1 快速收集信息
GTD工具通常會定義一個Inbox,用于快速記錄想法、任務(wù)。萬能的Inbox工具是紙和筆,之前我也嘗試過gmail、EverNote和doit.im, 但都感覺不夠敏捷。 而Emacs 下的org-mode + remember-mode 能夠滿足我的要求。
最新版的Org(>6.36)集成了remember.el,可以快速捕獲信息,通過預(yù)定義的模板進行分類,并能夠保存相關(guān)的附件。
盡量使用Emacs完成更多的功能有利于收集(如www,mail,im,read)
3.1.1 快速啟動
在emacs中使用命令 M-x org-remember, 會打開一個新的buffer,輸入一些內(nèi)容之后輸入命令C-c C-c,就會將內(nèi)容保存到文件中(默認(rèn)是~/.notes)。 如果查看~/.notes文件,會看到類似下面的內(nèi)容:
** Mon Apr 16 10:32:38 2012 (使用org-remember創(chuàng)建)使用org-remember創(chuàng)建/home/********/orgmode3_GTD.org** Mon Apr 16 10:34:41 2012 (另一個測試)另一個測試/home/*******/tmp
org-remember會自動創(chuàng)建一些條目,包括時間,輸入的注釋內(nèi)容以及當(dāng)時Emacs打開的文件名。
盡管這樣已經(jīng)比手工打開一個文件并輸入一些內(nèi)容要迅速許多,但我們還可以做到更快:
- 可以定義org-remember命令的快捷鍵,比如C-c c(這個快捷鍵應(yīng)該是org菜單中最快捷的):
(define-key global-map "\C-cc" 'org-remember)
- 如果不習(xí)慣一直開著Emacs并且覺得Emacs打開太慢,還可以使用Emacs的Server/Client模式。 $ emacsclient -e "(remember-other-frame)"
3.1.2 模板定義
org-remember支持模板,可以通過快捷鍵選擇事件的類型,生成特定格式的記錄,并插入到指定容器的指定位置。其格式是: (名稱,快捷鍵,內(nèi)容模板,文件,父節(jié)點)
我的事件定義如下:
事件(快捷鍵) | 容器 | 模板 |
---|---|---|
New(n) | inbox.org | 收件箱,收集未整理的信息 |
Task(t) | task.org | 待辦事項,所有未完成的事情 |
Calendar(c) | task.org | 日程安排,具有明確時間的待辦實現(xiàn),可以是周期性任務(wù) |
Idea(i) | task.org | 想法,愿望 |
Note(r) | note.org | 筆記,最終會被移到真正的筆記本 |
Project(p) | project.org | 項目任務(wù) |
對應(yīng)的模板配置:
(org-remember-insinuate) (setq org-directory "~/Documents/Dropbox/0.GTD/") (setq org-remember-templates '(("New" ?n "* %? %t \n %i\n %a" "~/Documents/Dropbox/0.GTD/inbox.org" ) ("Task" ?t "** TODO %?\n %i\n %a" "~/Documents/Dropbox/0.GTD/task.org" "Tasks") ("Calendar" ?c "** TODO %?\n %i\n %a" "~/Documents/Dropbox/0.GTD/task.org" "Tasks") ("Idea" ?i "** %?\n %i\n %a" "~/Documents/Dropbox/0.GTD/task.org" "Ideas") ("Note" ?r "* %?\n %i\n %a" "~/Documents/Dropbox/0.GTD/note.org" ) ("Project" ?p "** %?\n %i\n %a" "~/Documents/Dropbox/0.GTD/project.org" %g) )) (setq org-default-notes-file (concat org-directory "/inbox.org"))
使用模板參數(shù)能帶來很多便捷。比如上面的Project模板,在收集的時候能夠根據(jù)選擇的項目名稱,自動將任務(wù)插入到對應(yīng)項目的條目下面。
常用的模板元素:
元素 | 說明 |
---|---|
%? | 輸入文字 |
\n | 插入換行符 |
%i | 插入選擇區(qū)域 |
%a | 當(dāng)前光標(biāo)所在標(biāo)題的鏈接 |
%t | 插入日期 |
%T | 插入日期和時間 |
%g | 從目標(biāo)容器的標(biāo)簽中選擇 |
%G | 從全局標(biāo)簽中選擇 |
%t | 輸入日期時間 |
模板的詳細說明可以參考這里。
3.2 TODO 查看日程表
在 Emacs 配置文件 .emacs 定義日程表快捷鍵:
(define-key global-map "\C-ca" 'org-agenda)
C-c [ 將當(dāng)前文件加入日程表,C-c a a 本周事件 t 顯示所有事件 m 查詢標(biāo)簽 L 當(dāng)前緩沖區(qū)時間線 s 查詢關(guān)鍵詞 T 查詢帶 TODO 關(guān)鍵詞的項 M 查詢帶 TODO 關(guān)鍵詞的標(biāo)簽 q 退出日程表
可以將多個 org 文件從日程表加入、移除,或者將日程表鎖定在當(dāng)前 org 文件的某個分支: C-c [ 將當(dāng)前文件加入日程表。如果已加入,移動到前面 C-c ] 將當(dāng)前文件從日程表中移除 C-c C-x < 鎖定到當(dāng)前樹(只顯示當(dāng)前樹的事件) C-c C-x > 解除鎖定
3.3 TODO 每日計劃
- State "TODO" from ""
3.4 TODO 按狀態(tài)查詢
- State "TODO" from ""
3.5 TODO 按標(biāo)簽搜索
- State "TODO" from ""
3.6 TODO 工作記錄
- State "TODO" from ""
3.7 TODO 階段總結(jié)
- State "TODO" from ""
3.8 TODO 項目統(tǒng)計
- State "TODO" from ""
C-c C-x C-r (clocktable)
統(tǒng)計每類任務(wù)劃分的時間
3.9 TODO 文檔任務(wù)
- State "TODO" from ""
C-c [ 將當(dāng)前文件加入日程表
3.10 TODO 導(dǎo)出和打印
- State "TODO" from ""
4 擴展
4.1 同步
由于前面已經(jīng)將GTD文件目錄設(shè)置在Dropbox目錄下,所以可以自動實現(xiàn)同步,包括pc,mac,mobile。
iOS和Android上面都有MobileOrg,移動設(shè)備上的GTD也就解決了。
4.2 TODO 導(dǎo)出可打印版本
- State "TODO" from ""