org-clockの今日のログを眺めたい
org-clockはタスクごとにレポートしたりできるのですが、今日はどんなタスクをしたのかがわかりにくいと思います。
そういう関数を見つけられなかったので、コマンドで書いてみました。 他のエレガントな実装方法があれば教えて欲しいです。
実装
awkとgrepとsortをshell-command
で利用できる前提です。
(shell-command (concat "awk '" ;; keep task name "(/\\* /){" "$1=\"\";task=$0;" "}" ;; print clock log and task name "(/[C]LOCK:/){" "printf(\"%s %s\\n\",$0,task);" "}" "' " (buffer-file-name) ;; filter today's log "|grep '" (format-time-string "%Y-%m-%d") "'" ;; sort reverse by date "|sort -nr") t)
出力
上記S式の後ろでC-x C-e
など実行して評価すると、下記のような出力が入力されます。
CLOCK: [2015-05-00 Thu 09:46] Emacs Lisp Writing CLOCK: [2015-05-00 Thu 09:40]--[2015-05-00 Thu 09:46] => 0:06 Sub Task B-1 CLOCK: [2015-05-00 Thu 08:57]--[2015-05-00 Thu 09:40] => 0:43 Sub Task A-2 CLOCK: [2015-05-00 Thu 08:51]--[2015-05-00 Thu 08:57] => 0:06 Task B CLOCK: [2015-05-00 Thu 08:26]--[2015-05-00 Thu 08:51] => 0:25 Sub Task A-1 CLOCK: [2015-05-00 Thu 08:15]--[2015-05-00 Thu 08:26] => 0:11 Task A
関数にしてキーバインドを追加しても、バッファに表示してpopwinしてもいいとおもいます。