メインコンテンツへスキップ

EmacsとOrg-modeで簡単TODO管理のススメ

著者
Okada

はじめに

みなさんこんにちは.
GNグループM1の岡田です.
今年ももう12月. 先生も忙しいですが研究室の学生も 特別研究報告書や修士論文で忙しい時期です.
ノムニチ読者の皆様もバイトや遊びでお忙しいことでしょう.
やることがたくさんあると, いくつか忘れてしまうことも多いと思います.
そこで,そんな物忘れをなくすために今日はEmacsとOrg-modeで TODOリストを管理するための方法について紹介します.

環境構築と設定

まずは,EmacsとOrg-modeでTODOリストを管理するための環境構築と設定をしていきましょう.
手順は以下のようになっています.
  1. TODOを管理するディレクトリを設定
  2. TODO管理用のファイルを作成
  3. org-captureとorg-agendaの設定

TODOを管理するディレクトリを設定

TODOリストを管理するファイルをおくディレクトリを設定します.
どのマシンでもTODOはみたいと思うので,Dropboxあたりに作るのがオススメです.
設定するには,以下をEmacsの設定ファイル(デフォルトは~/.emacs.d/inits.el)に追加しましょう.
(setq org-agenda-files (list "~/Dropbox/org"))

TODO管理用のファイルを作成

次に,TODOを管理する為のorgファイルを作成します.
いろんな分類ごとにファイルを分割管理してもいいんですが,
Org-modeは階層構造を管理できるので,一個のファイルでいいと思います.
C-sで検索しやすくなりますしね.
$ mkdir ~/Dropbox/org
$ touch ~/Dropbox/org/TODO.org
ファイルを作ったら,TODOをとりあえず入れる受け皿として,Inboxを作りましょう.
こんな感じで書くと良いです.
* Console
** Inbox
Consoleの項目には,皆さんがTODOリスト開いたときにすぐ見るような情報をまとめておくと良いでしょう.

org-captureとorg-agendaの設定

org-captureとorg-agendaって?

さすがにこれだけだとなんでこんなん設定すんのやってなるので,簡単になんに使うか説明しますと,
org-captureはEmacsから簡単にTODOリストにTODOを登録する為に使います.
org-agendaはTODOをいろんなViewで見る為に使います.

org-captureの設定

まず,org-captureのキーバインドを設定します.
以下を設定ファイルに書きましょう.
(global-set-key "\C-cc" 'org-capture)
これだけだとまだ使えないので,先ほど作ったInboxにTODOを登録する設定を書きます.
(setq org-capture-templates
      '(("t" "TODO" entry (file+headline "~/Dropbox/org/TODO.org" "Inbox")
         "*** TODO %?\n    CAPTURED_AT: %a\n    %i")))
上記の設定に付いて詳細に知りたい場合はOrg-modeの公式ページを見にいくといいでしょう.

org-agendaの設定

まず,org-agendaのキーバインドを設定します.
以下を設定ファイルに書きましょう.
(global-set-key "\C-ca" 'org-agenda)
org-agendaはこれだけでもそこそこ使えるんですが,追加で設定もできます.
例えば,TODOリストのうち,状態がTODOの物だけみたい場合は以下のように設定を書きます.
(setq org-agenda-custom-commands
      '(
        ("o" . "Original agenda view") ; description for "o" prefix
        ("ot" todo "TODO")
        ))
デフォルトのショートカットと名前が衝突するとめんどくさいので,
適当なprefixをつけてその下に入れるといいでしょう.
こちらも,詳細に知りたければOrg-modeの公式ページを見に行きましょう.

実際に使おう

TODOを登録しよう

まずはEmacsを開いてTODOを登録してみましょう.
Emacs上でC-ccすると,org-captureが呼び出されます.
設定したTODOというTemplateが出てくると思いますので,tを押下します.
すると,以下のような表示が出るかと思います.
*** TODO
    CAPTURED_AT: [[file:~/index.html]]
あとは思いついたTODOを適当にうちこみ,C-ccを入力すればTODO登録の完了です.
Inboxを確認すると,先ほど入力したTODOが入っていることが確認できると思います.
また,先ほどの設定では, リージョン選択の後でC-cctするとCAPTURED_ATの下に選択範囲が貼り付けられるようになっています.

TODOを一覧しよう

登録したTODOはTODO.orgに行けばInboxの中にあるものを見ることができます.
しかし,いちいちファイル開いて見にいくのもめんどくさいので,
org-agendaを使いましょう.
C-caと入力すれば,org-agendaが動作します.
先ほど設定したTODOだけを見るViewに行くには,そこからotと入力しましょう.
すると,先ほど入力したTODOがちゃんと表示されることがわかると思います.
各TODOを選択すれば,該当項目にも行けて便利です.

まだまだ便利に

ここで紹介した以外にも様々な機能があります. 例えば,設定によってはTODOとDONE以外にも状態を管理できます.
また,タグを定義し,複数つけて管理できます.agendaによってタグに絞ってみるなんてことも可能です.
さらに,TODOを管理するための便利なキーバインドがいくつもOrg-modeには用意されています.
ここら辺のお話については,また興が乗れば執筆して,皆さんと共有できればと思います.