Emacs org-modeを使ったタスク管理一例(2025年)

Emacs org-modeを使ったタスク管理一例(2025年)

Clock Icon2025.02.08

org-mode は Emacs メジャーモードの1つです。 アウトライナーとしての機能だけでなく、 タスク管理や表計算、文芸的プログラミングなど 何でもできるツール として知られています。

https://orgmode.org/ja/

私は Emacs org-mode が大好きで、今も愛用しています。 過去にも以下にある「仕事の進め方」ブログを書いていました。

https://maskaw.hatenablog.com/entry/2018/09/21/205910

そこからだいぶを時間も経ちました。 改めて自分の整理も兼ねて、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)で文章を構築します。

sc_2025-02-08_09-15-05_11838
画像引用: 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( *** ) タスクを構成するサブタスク
それ以降 特にルール無し

sc_2025-02-08_09-57-14_23151
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つです。

sc_2025-02-08_10-07-23_8894
デフォルトのTODOキーワード

TODOキーワードはカスタマイズ可能です。 私は以下のようにカスタマイズしています。

TODOキーワード 完了/未完了 タスクの状態
TODO 未完了 進行中(自分ボール)
DOIN 未完了 進行中(自分ボール) ※気持ち集中したいもの
WAIT 未完了 進行中(相手ボール)
TRET 未完了 処理済み
REMD 未完了 リマインドタスク用(後述)
DONE 完了 クローズ(完了)
SKIP 完了 クローズ(対応しない)

sc_2025-02-08_10-21-20_14196
カスタマイズ後の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ファイル上を管理している場合に役立ちます。

sc_2025-02-08_10-32-49_14102
画像引用: 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タスクが表示されます。

sc_2025-02-08_14-08-51_20420
org-agendaビュー(Agenda and all TODOs) サンプル

org-agenda バッファー上での操作については 以下ドキュメントを参照ください。

https://orgmode.org/manual/Agenda-Commands.html

私が主に使用する操作(キー)も記載します。

キー 操作内容
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ファイルにリマインドタスクが登録されます。

sc_2025-02-08_11-51-45_11246
org-capture を使ったメモ取りの流れ

タグの活用

org-modeでは見出しに タグ(Tags) を付けられます。 付与したタグは org-agenda 機能にて検索できます。 タスクのグループ分けとして役に立ちます。

タグの付与は見出し上で C-c C-c 、もしくは 見出し内で C-c C-q (org-set-tags-command) で実施できます。

sc_2025-02-08_13-45-29_18616

例えば過去の活用では、業務内容のカテゴリごとにタグを付与していました。

タグ 用途
meeting 会議
document 設計書などの資料作成
kitting 機器構築
study 学習、調査
travel 出張
office 事務作業

-- 引用: Emacs org-agenda他を運用して1年経ったのでまとめる - メモ.org

今はタグを「月次のタスク振り返り」として、1年ほど運用しています。 具体的には推進しているタスクに 202502 のように年月(YYYYMM)タグを付与しています。

当月の終わりに、実施したタスクを振り返ります。 (C-c a (org-agenda) 後に m(Match a TAGS/PROP/TODO enrties) を押下してタグを検索)

sc_2025-02-08_13-47-31_21188
org-agendaで特定のタグ一覧を検索

init.el としてはタグが子見出しに継承されるのを防ぐ設定を入れています。

; タグが子見出しに継承されるのを防ぐ( "@" 始まりのタグは例外)
(setq org-use-tag-inheritance "^@")

過去に使っていた機能

以下に紹介する org-mode の機能は今は活用していません。 過去に使用したことはあるため、参考までに紹介します。

スケジューリング

Deadlines and Scheduling 機能により締切日や予定日をタスクに付与できます。 org-agenda から予定を確認可能です。 定例などの繰り返しのスケジューリングにも対応しています。

ただ私の場合、ここらへんのスケジュール周りは Google Calendar 上で管理しています。 org-mode では管理していません。 二重管理になってしまうためです。

工数計測

工数計測機能では、タスクごとに工数を計測、集計できます。 昔は本機能を使って工数計測、月次で振り返りを実施していました。

sc_2025-02-07_10-04-38_16561
画像引用: Emacs org-agenda他を運用して1年経ったのでまとめる - メモ.org

Org-roam

Org-roam は Emacs org-mode 上で動作するナレッジ管理システムです。 過去に以下のような活用ブログを書いていました。

https://dev.classmethod.jp/articles/intro-zettelkasten-and-emacs-org-roam/

数ヶ月ほどは (メモ機能として) 運用していましたが、 得られたナレッジは 本ブログ(DevelopersIO) にアウトプットしたり、 チーム内のwikiに記載することが多く、 これまた二重管理な雰囲気を感じたので辞めてしまいました。

おわりに

org-modeを使ったタスク管理/推進の一例でした。

org-modeは非常に機能が多く、ドキュメントも膨大です。 紹介していない機能もまだまだあります。

慣れるまでに時間は掛かりますが、その分 得られるメリットも多いです。 プレーンテキストかつキーボード操作主体で、 ここまで快適に操作できるツールは数少ないです。

org-mode の活用スタイルは千差万別です。 1つのサンプルとして、参考になれば幸いです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.