![Emacs org-modeを使ったタスク管理一例(2025年)](https://devio2024-media.developers.io/image/upload/v1738993296/user-gen-eyecatch/nyrfoci87vlimag4ainr.png)
Emacs org-modeを使ったタスク管理一例(2025年)
org-mode は Emacs メジャーモードの1つです。 アウトライナーとしての機能だけでなく、 タスク管理や表計算、文芸的プログラミングなど 何でもできるツール
として知られています。
私は Emacs org-mode が大好きで、今も愛用しています。 過去にも以下にある「仕事の進め方」ブログを書いていました。
そこからだいぶを時間も経ちました。 改めて自分の整理も兼ねて、org-mode を仕事でどう活用しているかをまとめてみます。
前提(実行環境)
- MacBook Pro (Apple M1 Max)
- macOS Sequoia 15.3
- GNU Emacs 29.4
- Org-mode 9.6.15
ディレクトリ/ファイル構成
org-modeではorgファイル( 拡張子 .org
)を取り扱います。 orgファイル内にて専用の文法(Org Syntax)で文章を構築します。
画像引用: Features | Org mode
私は 1ディレクトリ( ~/org
) 内にorgファイルを格納して管理しています。 orgファイルは案件や社内活動、カテゴリ単位で分割します。 以下サンプルです。
orgファイル | 用途 |
---|---|
~/org/1_AAA.org |
AAA案件管理用 |
~/org/1_BBB.org |
BBB案件管理用 |
~/org/2_XXX.org |
社内のXXX改善活動用 |
~/org/2_YYY.org |
社内のYYY改善活動用 |
~/org/3_BLOG.org |
ブログ執筆用 |
~/org/4_TEAM.org |
そのほか社内タスク用 |
~/org/9_REMIND.org |
リマインドタスク用(後述) |
プレフィクスを付けているのは、org-agenda(後述) にて 表示項目をソートさせるためです。
見出しの構成ルール
案件や社内活動のorgファイルでは、 見出し(Headings)レベルごとに用途を大まかに決めて運用しています。
見出しレベル | 用途 |
---|---|
1( * ) |
タスクのカテゴリ |
2( ** ) |
タスク |
3( *** ) |
タスクを構成するサブタスク |
それ以降 | 特にルール無し |
orgファイルの構成イメージ
タスクにはTODOキーワード(後述)や 関連するリンクを記載します。 リンクは関係者とのコミュニケーション場所によって異なります。 例えば Backlog 課題や SlackのスレッドURL、 GitHubの Pull Request/Issue、Notionページなどです。
[Tips] C-c C-o (org-open-at-point)
でカーソル上にあるURLリンクを Webブラウザで開けます。 また、見出し配下のテキストに URLリンクがある場合、 その見出し上で C-c C-o
を実行しても、URLリンクを開けます。 この挙動は org-agenda (後述) でも役に立ちます。
タスクの登録(TODOキーワード)
見出しにはTODOキーワードを設定できます (C-c C-t (org-todo)
)。 デフォルトは TODO, DONE の2つです。
デフォルトのTODOキーワード
TODOキーワードはカスタマイズ可能です。 私は以下のようにカスタマイズしています。
TODOキーワード | 完了/未完了 | タスクの状態 |
---|---|---|
TODO | 未完了 | 進行中(自分ボール) |
DOIN | 未完了 | 進行中(自分ボール) ※気持ち集中したいもの |
WAIT | 未完了 | 進行中(相手ボール) |
TRET | 未完了 | 処理済み |
REMD | 未完了 | リマインドタスク用(後述) |
DONE | 完了 | クローズ(完了) |
SKIP | 完了 | クローズ(対応しない) |
カスタマイズ後のTODOキーワード一覧、見た目
参考:TODO周りのEmacs設定(init.el)
; TODOキーワード設定
(setq org-todo-keywords
'((sequence "TODO(t)" "DOIN(n)" "WAIT(w)" "TRET(e)" "REMD(r)"
"|" "DONE(d)" "SKIP(x)")))
(setq org-todo-keyword-faces
'(
("WAIT" . (:foreground "CadetBlue3" :weight bold))
("TODO" . (:foreground "LightGoldenrod3" :weight bold))
("REMD" . (:foreground "PaleGreen3" :weight bold))
("TRET" . (:foreground "dark gray" :weight bold))
))
; DONEとなった時間を記録しない
(setq org-log-done nil)
; DONEステータス時の見出しの色を変えない
(setq org-fontify-done-headline nil)
タスクの確認(org-agenda)
org-agenda は一言でいうと「タスクの集約ビューを作ってくれる便利機能」です。 複数のorgファイル上を管理している場合に役立ちます。
画像引用: David O'Toole Org tutorial
org-agenda を使うにあたって、いくつか設定しています。 具体的には「org-agenda 対象とするorgファイル(ディレクトリ)の指定」 と「org-agenda を起動するキーバインド」です。
参考:org-agenda周りのEmacs設定(init.el)
; ~/org ディレクトリ内のorgファイルを org-agenda 対象にする
(setq org-directory "~/org/")
(setq org-agenda-files (list org-directory))
; C-c a で org-agenda メニューを起動
(define-key global-map "\C-ca" 'org-agenda)
;;; ほか細かい設定
; 同じウィンドウ上にアジェンダ表示
(setq org-agenda-window-setup 'current-window)
; アジェンダ表示で下線を用いる
(add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1)))
(setq hl-line-face 'underline)
; 標準の祝日を利用しない
(setq calendar-holidays nil)
例えば C-c a (org-agenda)
後に t
(List of all TODO entries) を押下すると、 すべてのTODOタスクが表示されます。
org-agendaビュー(Agenda and all TODOs) サンプル
org-agenda バッファー上での操作については 以下ドキュメントを参照ください。
私が主に使用する操作(キー)も記載します。
キー | 操作内容 |
---|---|
n |
上に移動 |
p |
下に移動 |
RET |
対象タスクに移動 |
t |
TODOステータスを変更 |
: |
タグを設定 |
org-agendaは重宝しています。 1日の始まりやタスクを切り替えるとき、1日の終わりの振り返りなど、 要所要所で起動しています。
リマインド(org-capture)
org-capture は素早くメモを取りたいときに役立つ機能です。 私は「社内のちょっとした事務タスク」や「ふと気づいたタスクやアイデア」 をメモとして残すために、この機能を使っています。
以下にorg-captureの設定サンプルを記載します。
参考:org-capture周りのEmacs設定(init.el)
; C-c c で org-capture メニューを起動
(global-set-key "\C-cc" 'org-capture)
; C-c c t で 9_REMIND.org にリマインドタスクを登録
(setq org-capture-templates
'(
("t" "Todo" entry (file+headline "~/org/9_REMIND.org" "[#C] REMIND")
"* REMD [#C] %? (wrote on %U)")
))
C-c c (org-capture)
後に t
(Todo)を押下して、リマインドタスクを記載します。 記載後に C-c C-c
(Finish) を適用すると、 所定のorgファイルにリマインドタスクが登録されます。
org-capture を使ったメモ取りの流れ
タグの活用
org-modeでは見出しに タグ(Tags) を付けられます。 付与したタグは org-agenda 機能にて検索できます。 タスクのグループ分けとして役に立ちます。
タグの付与は見出し上で C-c C-c
、もしくは 見出し内で C-c C-q (org-set-tags-command)
で実施できます。
例えば過去の活用では、業務内容のカテゴリごとにタグを付与していました。
タグ 用途 meeting 会議 document 設計書などの資料作成 kitting 機器構築 study 学習、調査 travel 出張 office 事務作業
今はタグを「月次のタスク振り返り」として、1年ほど運用しています。 具体的には推進しているタスクに 202502
のように年月(YYYYMM
)タグを付与しています。
当月の終わりに、実施したタスクを振り返ります。 (C-c a (org-agenda)
後に m(Match a TAGS/PROP/TODO enrties)
を押下してタグを検索)
org-agendaで特定のタグ一覧を検索
init.el としてはタグが子見出しに継承されるのを防ぐ設定を入れています。
; タグが子見出しに継承されるのを防ぐ( "@" 始まりのタグは例外)
(setq org-use-tag-inheritance "^@")
過去に使っていた機能
以下に紹介する org-mode の機能は今は活用していません。 過去に使用したことはあるため、参考までに紹介します。
- スケジューリング(Deadlines and Scheduling)
- 工数計測 (Clocking Work Time)
- Org-roam
スケジューリング
Deadlines and Scheduling 機能により締切日や予定日をタスクに付与できます。 org-agenda から予定を確認可能です。 定例などの繰り返しのスケジューリングにも対応しています。
ただ私の場合、ここらへんのスケジュール周りは Google Calendar 上で管理しています。 org-mode では管理していません。 二重管理になってしまうためです。
工数計測
工数計測機能では、タスクごとに工数を計測、集計できます。 昔は本機能を使って工数計測、月次で振り返りを実施していました。
画像引用: Emacs org-agenda他を運用して1年経ったのでまとめる - メモ.org
Org-roam
Org-roam は Emacs org-mode 上で動作するナレッジ管理システムです。 過去に以下のような活用ブログを書いていました。
数ヶ月ほどは (メモ機能として) 運用していましたが、 得られたナレッジは 本ブログ(DevelopersIO) にアウトプットしたり、 チーム内のwikiに記載することが多く、 これまた二重管理な雰囲気を感じたので辞めてしまいました。
おわりに
org-modeを使ったタスク管理/推進の一例でした。
org-modeは非常に機能が多く、ドキュメントも膨大です。 紹介していない機能もまだまだあります。
慣れるまでに時間は掛かりますが、その分 得られるメリットも多いです。 プレーンテキストかつキーボード操作主体で、 ここまで快適に操作できるツールは数少ないです。
org-mode の活用スタイルは千差万別です。 1つのサンプルとして、参考になれば幸いです。