Emacsのorg-modeでGTDを始めてみた
今更ながらGTDを始めてみた。頭の中がもやもやしてしまってストレスがたまっていたからだ。きっかけはorg-modeとの出会い…っていうか本腰入れて使ってみようと思ったから。そこでGTDが話題になっていた。
GTDは収集→処理→整理→レビュー→実行のプロセスを経る。そして毎週レビューする、これ最重要。頭の中をクリーンな状態に保って効率を上げる。
収集は頭の中で思い付いたことを「すべて」メモリダンプする作業だ。初GTDならば本来数時間取られるけど、俺はメモ魔なのでそんなに時間を取らないだろう。元からかなり書き出されている。頭がぼーとしているときに寝転んで数十分ほど紙に書き出してみた。
処理はリストに移動する作業だ。もちろんその前に収集した内容をorg-modeに書き込んでおく。うーん、リストに移動する際、手作業でカーソルを移動させるのは面倒でやってられん。org-modeでInbox内のツリーを特定の階層に移動するEmacs Lispを書くべきだな、こりゃ。それとも最新版ではそういうコードがあるかな?写真でわかるGTD(初回編) (3/4) - ITmedia エンタープライズにフローチャートが書いてあった。フローチャートってなんか苦手なので母国語(笑)のRubyで書き下してみた。こんなんでいいのかな。NoMethodErrorとかNameErrorなんて野暮なツッコミはやめてくれ。
for task in Inbox task.result = 理想の状態 if task.一週間以内に前に進める必要がある? next_action = task.next_action if task.複雑? # 次のアクションを考えるのがなにか面倒そうな場合 ProjectList << task next_action = review task end if next_action.十分簡単? :time_limit => 2.minutes next_action.doit! # 今すぐやれ elsif next_action.自分でやるべき? if next_action.あとでやる? Calendar << next_action else NextActionList << next_action end else WaitingList << next_action end else if task.もはや必要ない? task.destroy! elsif task.資料? DataFolder << task else MaybeList << task end end end
整理はorg-modeに落とし込んでいくことなのだが、処理の段階で書き込まれてるから不要?org-modeはカレンダーとの連携もできるし。
レビューは今日やることを選定する作業。初回はリストが最新なので不要。「週次レビュー」でいろいろやる。んだけど、行動する順番を決めたりするのはここなのかな?それとも整理?
実行は文字通りさあやれということ。
org-modeはPlain Textなのでバージョン管理ができる。diffを取れば仕事の進捗がわかる。こういう単一のファイルの場合もローカルでgit使えばいいのかな?vc-git.elもあるし、RCSよりも高機能だろうし。
追記
やはりツリーを特定の階層に移動させるコマンドorg-refileがあった。C-c C-wでできるのが便利だ。バージョン6.12からなのでつい1ヶ月ちょい前に実装されたのだった。やはりバージョンアップした甲斐があった。
どうやって探したかというと、ドキュメントでツリーをkillするコマンドorg-cut-subtreeを見付けて、ソースからそれを検索したのだった。