invitation to org-agenda
Table of Contents
Last modified: 20221117T2119+0900
emacsに標準装備されているorg-modeは、emacsでアウトラインモードを実現するツールですが、それだけでなく、予定やプロジェクトの管理、TeXやhtmlへのエクスポートなど、テキストを扱う人にとって便利な非常に多くの機能が備わっています。
1. org-agendaとは
org-agendaは、org-modeに備わっているスケジュールを表示し管理する一群の機能です。
2. org-agenda-file
検索対象とするファイルは、この変数の中にリストで指定します。ディレクトリ名で終わっている場合は、その下のすべてのorgファイルが対象となります。たとえば、
(setq org-agenda-file '("~/org/work/" "~/org/home/" "~/org/2022agenda.org"))
は、 ~/org/work/
と ~/org/home/
以下のすべてのorgファイル、それに加えて、 ~/org/2022agenda.org
というファイルを対象にします。
cf. 11.1 Agenda Files (The Org Manualから)
3. 表示
検索されたスケジュールやTODOを表示するためには、以下のemacsのコマンドを打ち込みます。
M-x org-agenda
標準で、これは C-c a
に割り当てられています。 Press key for an agenda command:
というウインドウが表示されるので、そこで a
を押すと、カレンダーのような一覧表示が現れます。これは C-c a a
と入力しても同じです。
3.1. 単純な予定
org-agenda-fileに含まれるファイルの中で、特定のヘッダの下に日付を書くと、org-agendaはそれを探し出して、 C-c a a
で表示してくれます。たとえば、
* フェスに行く <2022-11-06 Sun 17:00>
と書いておくと、 C-c a a
のカレンダー表示の中に、その予定が表示されます。
3.2. 締切
* フェスの申込をする DEADLINE: <2022-10-30 Sun 17:00>
このように、日付の前に DEADLINE:
を付けると、それは締切と解釈され、標準では2週間前から警告メッセージが出ます。この期間をカスタマイズするには、 org-deadline-warning-days
という変数に値を指定します。
3.3. スケジュール
* フェスに行く服を買いに行く SCHEDULED: <2022-11-05 Sat 13:00>
org-agendaのタスク管理で優れていることのひとつは、あるタスクについて、「発生日時、締切、スケジュール」の三つを指定できることです。とくに、最後のスケジュールは、そのタスクをいつやるかを自分で決めて、それを指定しておくためのもので、たんに締切を意識するだけでなく、その他の仕事との関係で、いつそれをするかを考えることで、計画的なタスク管理が実現します。
たとえば、11月5日が締切だけれども、その頃は忙しいので二日前の3日に申込をする計画を立てた場合には、次のように書いておきます。
* フェスの申込をする SCHEDULED: <2023-11-03 Fri> DEADLINE: <2023-11-05 Sun>
4. 入力
これらの日付を手作業で入力するのは面倒ですし、誤入力も起きやすいので、このための特別なコマンドが用意されています。
C-c . | org-time-stamp | カレンダーを表示して、カーソルがある日付を入力する |
C-c C-s | org-schedule | "SCHEDULED:"という文字列を挿入し、カレンダーを表示する |
C-c C-d | org-deadline | "DEADLINE:"という文字列を挿入し、カレンダーを表示する |
5. org-capture
通常は、org-captureを使います。テンプレートを準備して、 C-c c
で呼び出し、 C-c C-c
で記録します。
説明するのはたいへんなので、詳細はマニュアルを見てください。Enjoy!