org-modeでTODO管理
Emacs Advent Calendar jp: 2010 : ATND の10日目です。
- 2011-01-02 タイポ修正
勢いで参加したものの、elispはさっぱりかけないので、
日々使っている機能を紹介する路線で行ってみようと思います。
org-mode でTODO管理をする方法を紹介します。
今回は素の org-mode で使える機能について触れてみます。
org-mode?
超高機能なアウトライン記述用メジャーモードです。
日付タグを入れたりファイルやWebページにリンクを張ったり表計算とかができたりします。
なんでorg-mode?
TODOの管理方法でいろいろ試して悩んだ結果、
結局 org-mode に落ち着きました。
理由は、
- emacs(= メインの作業環境)上で操作が完結する
- 時間が計れる
時間が計れる TODO 管理ツールやサービスはいくつか試したのですが、
いちいち emacs を離れて入力するのは面倒 → 入力しなくなる
という流れで長続きしませんでした。
TODO管理機能の使い方
ここから本題!TODOの記述
*.orgというファイルをつくって。 ** TODO ブログを書く
と書けばTODO項目として扱われます。
終了したTODOは、
** DONE ブログを書く
となります。
たとえばこんな感じに。
一覧表示
基本はorg-mode の形式で書いたファイルの内容を、
org-agenda で集計して表示する形になります。
C-c a(org-agenda) でアジェンダ一覧を表示し、
その場で t をタイプするとTODO一覧になります。
各行で Space をタイプするとそのTODO項目の本文をプレビュー、
Tab をタイプするとTODO項目に移動します。
なお、一番左のカラムが「org-temp」になっていますが、
これは集計対象のファイル名(org-temp.org)です。
(setq org-agenda-files '("~/note/main.org", "~/note/others.org"))
状態の切り替え
状態を切り替えるコマンドがもちろん用意されています。
項目中で C-c C-t(アジェンダ上なら t のみでOK)とすれば、
(無印)-> TODO -> DONE -> (無印)のように切り替わります。
** 夜ご飯 ** TODO 昼ご飯 ** DONE 朝ご飯
タイムスタンプ
<2010-12-10 Fri> <2010-12-31 Fri 23:59>
のように書くとタイムスタンプとして扱われます。
TODO項目にタイムスタンプを入れておくと、アジェンダ表示に時系列順に表示されます(後述)。
時間を計る
TODO項目中で C-c C-x C-i(アジェンダ上なら I)とすると時間の計測が始まります。
経過時間はモードラインに表示されます。
計測を終わるときは C-c C-x C-o(アジェンダ上では O) 、 取り消すときは C-c C-x C-x です。
計測を始めるとこんなタグがTODO項目に追加されます。CLOCK: [2010-12-05 Sun 18:27]
計測を終了するとこのようになります。
「=>」の後ろに経過時間が表示されます。
CLOCK: [2010-12-05 Sun 18:27]--[2010-12-05 Sun 19:15] => 0:48
時間計測は何度でも行えます。
計測を行った回数だけタグが追加されていきます。
CLOCK: [2010-12-05 Sun 20:08] CLOCK: [2010-12-05 Sun 18:27]--[2010-12-05 Sun 19:15] => 0:48
時間計測を修正
タグを書き換えて C-c C-c をタイプすると計測を修正することができます。おわり
キモになる機能はこんなところでしょうか。
コマンドがやたらたくさんあるので、
それだけで使うのを躊躇してしまうかもしれません(ぼくもそうでした)。
単なるTODOの記述からはじめて徐々に使う機能を増やしていくのがいいと思います。
TODO管理を作業環境から離れずに時間を計りつつ行えるのがポイントです。
時間を計って作業して、あとからなににどれだけかかったかをみかえすと、
自分のボトルネックがわかって作業効率改善に役立つんじゃないかと思います。