Emacs org-modeを使ってみる: (18) 計時
今回は,計時(クロック)の使い方についてまとめてみる.
なおUbuntu 8.04 LTSとEmacs22上で, org-6.34c (2010年1月10日リリース)の利用を前提にしている.
リンク
orgファイル中での計時
** 第2回ORG会議
上の「* 第2回ORG会議」の行で「C-c C-x C-i」とタイプすると,以下のように表示され,計時が開始される.
** 第2回ORG会議 CLOCK: [2010-02-19 金 13:30]
Emacsのステータス行には [0:00 (第2回ORG会議)] のように現在の計時時間が表示されている.
「C-c C-x C-o」とタイプすると計時が終了し,経過時間が表示される.
** 第2回ORG会議 CLOCK: [2010-02-19 金 13:30]--[2010-02-19 金 14:24] => 0:54
「C-c C-x C-d」とタイプすると,部分木毎の集計結果が表示される.表示を終了するには「C-c C-c」とタイプする.
* ORG会議...................................................* 2:02 ** 第1回ORG会議.............................................** 1:08 CLOCK: [2010-02-12 金 13:30]--[2010-02-12 金 14:38] => 1:08 ** 第2回ORG会議.............................................** 0:54 CLOCK: [2010-02-19 金 13:30]--[2010-02-19 金 14:24] => 0:54
キーバインド
キー | 説明 |
---|---|
C-c C-x C-i | 計時を開始 |
C-c C-x C-o | 計時を終了 |
C-c C-x C-x | 計時をキャンセル |
C-c C-x C-j | 計時中のタスクに移動 |
C-c C-x C-d | 部分木の計時の合計を表示 |
C-c C-c | 計時表示を削除 |
アジェンダ表示中での計時
以下のように今日実行するタスクがあるとする.
* タスク ** TODO タスクA SCHEDULED: <2010-02-19 金> ** TODO タスクB SCHEDULED: <2010-02-19 金>
「C-c a a d」とタイプして,今日のアジェンダを表示する.
Day-agenda (W07): Friday 19 February 2010 notes: Scheduled: TODO タスクA notes: Scheduled: TODO タスクB
各タスクにかかった時間を計時するには,以下のようにする.
まず,「タスクA」の行で「I」(大文字のi)をタイプするとタスクAに対して計時が開始される.一旦,計時を終了する場合は,「O」(大文字のo)をタイプする.
たとえば 09:30 に開始して,12:06 に一旦終了した場合, orgファイルの内容は以下のようになる.
* タスク ** TODO タスクA SCHEDULED: <2010-02-19 金> CLOCK: [2010-02-19 金 09:03]--[2010-02-19 金 12:06] => 3:03 ** TODO タスクB SCHEDULED: <2010-02-19 金>
再度「I」をタイプすると,再び計時が再開される.
* タスク ** TODO タスクA SCHEDULED: <2010-02-19 金> CLOCK: [2010-02-19 金 14:35] CLOCK: [2010-02-19 金 09:03]--[2010-02-19 金 12:06] => 3:03 ** TODO タスクB SCHEDULED: <2010-02-19 金>
タスクAの作業中だが,一旦中断してタスクBを先に行うとする.
その場合,タスクBの行で「I」をタイプする.自動的にタスクAの計時が終了し,タスクBの計時が開始される.
* タスク ** TODO タスクA SCHEDULED: <2010-02-19 金> CLOCK: [2010-02-19 金 14:35]--[2010-02-19 金 15:16] => 0:41 CLOCK: [2010-02-19 金 09:03]--[2010-02-19 金 12:06] => 3:03 ** TODO タスクB SCHEDULED: <2010-02-19 金> CLOCK: [2010-02-19 金 15:16]
タスクBが終了したら,アジェンダ表示で「C-c C-t d」とタイプする.タスクBをDONEに変更すると同時に自動的に計時が終了し,orgファイルの内容は以下のようになる.
* タスク ** TODO タスクA SCHEDULED: <2010-02-19 金> CLOCK: [2010-02-19 金 14:35]--[2010-02-19 金 15:16] => 0:41 CLOCK: [2010-02-19 金 09:03]--[2010-02-19 金 12:06] => 3:03 ** DONE タスクB SCHEDULED: <2010-02-19 金> CLOSED: [2010-02-19 金 15:58] CLOCK: [2010-02-19 金 15:16]--[2010-02-19 金 15:58] => 0:42
タスクAの作業を再開する場合,アジェンダ表示中のタスクAの行で「I」タイプして,計時を開始する.作業が終了すれば,「C-c C-t d」とタイプしDONEに変更する.
最終的にorgファイルの内容的は以下のようになる.
* タスク ** DONE タスクA SCHEDULED: <2010-02-19 金> CLOSED: [2010-02-19 金 17:18] CLOCK: [2010-02-19 金 15:58]--[2010-02-19 金 17:18] => 1:20 CLOCK: [2010-02-19 金 14:35]--[2010-02-19 金 15:16] => 0:41 CLOCK: [2010-02-19 金 09:03]--[2010-02-19 金 12:06] => 3:03 ** DONE タスクB SCHEDULED: <2010-02-19 金> CLOSED: [2010-02-19 金 15:58] CLOCK: [2010-02-19 金 15:16]--[2010-02-19 金 15:58] => 0:42
アジェンダ表示で「R」をタイプすると,計時レポートが表示される.
| File | L | Headline | Time | | |-----------+---+--------------+--------+------| | | | *Total time* | *6:40* | | |-----------+---+--------------+--------+------| | notes.org | | *File time* | *6:40* | | | notes.org | 1 | ORG会議 | 0:54 | | | notes.org | 2 | 第2回ORG会議 | | 0:54 | | notes.org | 1 | タスク | 5:46 | | | notes.org | 2 | DONE タスクA | | 5:04 | | notes.org | 2 | DONE タスクB | | 0:42 |
キーバインド
キー | 説明 |
---|---|
I | 計時開始 |
O | 計時終了 |
X | 計時キャンセル |
J | 計時中のタスクに移動 |
C-u J | 計時履歴を表示 |
R | 計時レポートを表示/非表示 |
l | 計時データを表示/非表示 |
計時レポートの作成
orgファイル中で,「C-c C-x C-r」をタイプすると計時レポートを挿入することが可能である.
#+BEGIN: clocktable :maxlevel 2 :scope file Clock summary at [2010-02-19 金 17:30] | L | Headline | Time | | |---+--------------+--------+------| | | *Total time* | *7:48* | | |---+--------------+--------+------| | 1 | ORG会議 | 2:02 | | | 2 | 第1回ORG会議 | | 1:08 | | 2 | 第2回ORG会議 | | 0:54 | |---+--------------+--------+------| | 1 | タスク | 5:46 | | | 2 | DONE タスクA | | 5:04 | | 2 | DONE タスクB | | 0:42 | #+END:
以下のように「:block」オプションを用いて対象期間を指定し,「:formula %」で割合表示を指定する.
「#+BEGIN」の行で「C-c C-c」をタイプすると表示が更新される.
#+BEGIN: clocktable :maxlevel 2 :scope file :block 2010-02-19 :formula % Clock summary at [2010-02-19 金 17:32], for 金曜日, 2月 19, 2010. | L | Headline | Time | | % | |---+--------------+--------+------+-------| | | *Total time* | *6:40* | | 100.0 | |---+--------------+--------+------+-------| | 1 | ORG会議 | 0:54 | | 13.5 | | 2 | 第2回ORG会議 | | 0:54 | 13.5 | |---+--------------+--------+------+-------| | 1 | タスク | 5:46 | | 86.5 | | 2 | DONE タスクA | | 5:04 | 76.0 | | 2 | DONE タスクB | | 0:42 | 10.5 | #+TBLFM: $5='(org-clock-time% @2$3 $3..$4);%.1f #+END:
なお「:scope」を「agenda」に変更すると,~/org/ ディレクトリ中の全orgファイルが対象となる(org-agenda-files の設定による).「subtree」とすれば,部分木が対象となる.
「Emacs org-modeを使ってみる」の目次
- (1) インストール
- (2) 見出しと項目の編集
- (3) 表の編集
- (4) 表計算
- (5) TODOリスト
- (6) アジェンダ表示
- (7) ハイパーリンク
- (8) メモを取る
- (9) キーバインド1/3
- (10) キーバインド2/3
- (11) キーバインド3/3
- (12) GTDツールとして
- (13) HTMLにエクスポート
- (14) LaTeXにエクスポート
- (15) Beamerにエクスポート
- (16) エクスポート結果
- (17) orgの表を埋め込む
- (18) 計時
- (19) graphvizとditaaの図を埋め込む
- (20) gnuplotを呼び出す
- (21) LaTeX数式のインライン画像表示
- (22) RSSフィードを取り込む
- (23) エクスポート時に利用できるLaTeX記号
- (24) 繰り返し行動の記録
- (25) iCalendarにエクスポート
- (26) タグとプロパティ
- (27) ドローワとアーカイブ
- (28) バッファ内設定一覧
- (29) エクスポートオプション一覧
- (30) CSSクラス名一覧
- (31) Emacs Lispの実行
- (32) HTML表のスタイル設定
- (33) 脚注と参考文献の利用
- (34) 短縮形リンクの利用
- (35) org-babel-perlを使う1/4
- (36) org-babel-perlを使う2/4
- (37) org-babel-perlを使う3/4
- (38) org-babel-perlを使う4/4
- (39) speedbarを使う
- (40) org-babel-Rを使う1/2
- (41) org-babel-Rを使う2/2
- (42) 日本語化ditaaの利用
- (43) mhcをインポート
- (44) 再びHTMLにエクスポート
- (45) Firefoxからブックマーク