Emacs org-agenda他を運用して1年経ったのでまとめる
Table of Contents
はじめに
org-agenda や org-capture, org-clock などの自分なりの運用をまとめます。
※ org-agenda … (簡単に言うと) ファイル毎に散らばったTODOタスクを集約して、
管理してくれるorg-mode のタスク管理機能
※ org-capture … (簡単に言うと) org-mode のメモ取り機能。さっとメモを書ける。
※ org-clock … org-mode の計時機能
参考サイト
- Emacs org-modeを使ってみる: (6) アジェンダ表示 - 屯遁のパズルとプログラミングの日記 :
http://d.hatena.ne.jp/tamura70/20100208/org - Org Mode Manual :
https://orgmode.org/manual/index.html#Top
設定内容 (init.el)
agenda files 構成
↓ init.el (抜粋)
;; アジェンダ表示の対象ファイル (setq org-agenda-files '( "c:/Users/AAA/org/aaa.org" "c:/Users/AAA/org/anken" "c:/Users/AAA/org/remind.org" ))
org ディレクトリ構成は下記の通り
org/
│ aaa.org
│ remind.org
│ knowledge.org
│
├─anken
│ AAA.org
│ BBB.org
│ CCC.org
│ :
│
└─tech
powershell.org
lpic.org
ccna.org
:
ファイル名 | 用途 |
---|---|
aaa.org | 社内業務関係をここに書く。 **アジェンダ対象** |
remind.org | さっとメモを取る ( **org-capture** する)とき用。 **アジェンダ対象** |
knowledge.org | ちょっとした知見をメモする ( **org-capture** する)とき用。 |
anken フォルダ | 案件ごとにorgファイルを管理。 **アジェンダ対象** |
tech フォルダ | 技術情報用。 |
org-capture 構成
↓ init.el (抜粋)
(setq org-capture-templates '(("t" "Todo" entry (file+headline "c:/Users/AAA/org/remind.org" "■Capture") "* REMIND %? (wrote on %U)") ("k" "Knowledge" entry (file+headline "c:/Users/AAA/org/knowledge.org" "TOP") "* %?\n # Wrote on %U")
remind.org には REMIND item が溜まっていく。
knowledge.org には (ちょっとした)知識 が溜まっていく。
その他
その他雑多な設定。読み飛ばしてOK。
;; ##### org-agenda ;; C-ca で org-agenda (define-key global-map "\C-ca" 'org-agenda) ;; アジェンダ表示で下線を用いる (add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) (setq hl-line-face 'underline) ;; 標準の祝日を利用しない (setq calendar-holidays nil) ;; TODO状態 (setq org-todo-keywords '((sequence "TODO(t)" "WAIT(w)" "REMIND(r)" "|" "DONE(d)" "SOMEDAY(s)"))) ;; DONEの時刻を記録 (setq org-log-done 'time) ;; タグリスト (setq org-tag-alist '(("meeting" . ?m) ("office" . ?o) ("document" . ?d) ("kitting" . ?k) ("study" . ?s) ("travel" . ?t) )) ;; ###### org-capture ;; C-cc で org-capture (global-set-key "\C-cc" 'org-capture) ;; ##### org-clock ;; clockログを隠す (setq org-clock-into-drawer t) ;; clocktable の体裁を整える (defun my-org-clocktable-indent-string (level) (if (= level 1) "" (let ((str " ")) (while (> level 2) (setq level (1- level) str (concat str "--"))) (concat str "-> ")))) (advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)
運用方法
TODO items: タスクの登録
アジェンダ対象の org の、各見出し(タスク) にTODO ステータスを付ける。
(見出し内で C-c C-t
でステータス登録)
筆者は下記ステータス を init.elで登録。
ステータス | 説明 |
---|---|
TODO | 未完了タスク。そのままの意味 |
WAIT | 未完了タスク。待ち状態 |
REMIND | 未完了タスク。リマインド (org-capture 用) |
DONE | 完了タスク。そのままの意味 |
SOMEDAY | 完了タスク。いつか手を付ける |
また、見出し上で C-c C-c
を実行することでタスクにタグを付けられる。
筆者は下記タグを init.el で登録。後述の工数表示でタグ毎に掛けた時間をまとめて報告書にした。
タグ | 用途 |
---|---|
meeting | 会議 |
document | 設計書などの資料作成 |
kitting | 機器構築 |
study | 学習、調査 |
travel | 出張 |
office | 事務作業 |
org-agenda: アジェンダの表示
出社して Emacs を起動後に、 C-c a n
で Agenda 表示 (TODO リストと1週間の予定)。
アジェンダ対象ファイルからTODO キーワードのタスクを抽出してリストアップしてくれる。
Agenda上で主に使用するキーは下記の通り。
キー | 説明 |
---|---|
n,p | 項目の上下移動 |
Enter | 選択タスクへバッファ移動 |
t | 選択タスクのTODO ステータス変更 |
I | 選択タスクの計時開始 |
O | 選択タスクの計時終了 |
C-c C-s | 選択タスクの予定日登録 |
C-c C-d | 選択タスクの締切日登録 |
q | Agenda を閉じる |
定期的に org-agenda を開いて TODO 状況を把握する。
org-capture: リマインドの登録
「ちょっとこれやっといて」的なことを言われたときに使う。
案件の本筋でない支援や、社内業務など細々した(忘れそうな)タスクを org-capture でメモしていく。
C-c c
で org-capture 起動。下記画面が表示されるので "t" を選択。
タスク内容を書いて C-c C-c
で登録完了。
org-agenda を開くと 登録されていることが確認できる。
org-clock: 工数計測
タスク消化に掛けた時間を計測する。
▼タスクの計測開始
- Agenda 上でタスクを選択して
I
- or タスクの見出し内で
C-c C-x C-i
LOGBOOK 内に計測開始時刻が記録される。
▼タスクの計測終了
- Agenda 上で
O
- or 任意の orgバッファで
C-c C-x C-o
- or タスクの TODO ステータスを DONE にする
LOGBOOK 内に終了時刻、経過時間が記録される。
org-clocktable: 工数表示
任意の orgファイルに下記のような内容を書く。
#+BEGIN: clocktable :maxlevel 2 :scope agenda :tstart "2018-01-01" :tend "2018-01-31"
#+END:
記述した #+BEGIN: ...
上で C-c C-c
を実行すると対象期間の計測結果が表示される。
↑は 2018年1月分の計測結果を表示している。
他にも下記のようなパラメータがある。組合せて所望の計測結果を表示させる。
(詳細: https://orgmode.org/manual/The-clock-table.html#The-clock-table )
パラメータ | 説明 |
---|---|
:block thisyear | 今年の計測分 |
:block lastweek | 先週の計測分 |
:tags "meeting" | meeting タグが付いたタスクの計測分 |
1年間運用した感想
★やっぱり org-mode、org-agenda は最高
複数案件を同時にこなすには org-agenda が欠かせなくなりました。
これからも org-agenda にはお世話になると思います。
org-capture も便利
これを使う前は とっさのメモを、とりあえず scratch バッファに書いて ・・・
といった対応を取っていました。
org-capture を使うことで、無駄なくリマインド登録・知識メモができるようになりました。
org-clock は下のような報告書を作成するときには役に立ちましたが、
半年ほどしか続きませんでした。
業務報告のためだけではリターンが少なかったです。
もう少し有益な分析ができるようにタグを見直したほうが良いかもしれません。
(例えばプロジェクトのフェーズ毎にタグ分けする、など)
統計
案件フォルダの orgファイル数 | 28個 |
案件フォルダの orgファイルサイズ合計 | 393KB |
DONE(完了) にしたタスク数 | 700個 |
SOMEDAY(いつかやる) にしたタスク数 | 43個 |
org-capture でREMIND を取った数 | 345個 |
org-clock で測った時間 | 26日と20時間59分 |