Org Captureのマニュアルをざっくり和訳しました。
オリジナルは下のリンク
http://orgmode.org/manual/Capture.html#Capture
結構飛ばしてますので、雰囲気だけでも。
個人的にテンプレートにElispを書いて評価させることが出来るのが面白いと思います。
org-rememberでも出来たっけ??
後メモを保存するファイルやファイル中のどこに保存するかもElispでかけるようになってます。
たとえば下のページでは、メモを取るときにロンドンのお天気情報を
WEBから拾ってきて挿入させたりしてます。
http://www.windley.com/archives/2010/12/capture_mode_and_emacs.shtml
面白いことが出来そうだとは思うけど、
何が出来るかは思い浮かばない・・・
Org Captureのマニュアル日本語訳
Table of Contents
=================
1 Capture - Refile - Archive
2 9.1 Capture
2.1 9.1.1 Setting up capture
2.2 9.1.2 Using capture
2.3 9.1.3 Capture templates
2.3.1 9.1.3.1 Template elements
2.3.2 9.1.3.2 Template expansion
1 Capture - Refile - Archive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
どんなOrganization Syatemにとっても、素早くアイデアやタスクをキャプチャーしそれらに参考資料を関連付ける機能が重要です。
Org Modeでは"Capture"という機能でこれを実現します。
このモードでは、タスクに関連するファイルを特別なディレクトリに保存することができます。
システムでは、一旦タスクやプロジェクトの周りに移動する必要があります。
終了したプロジェクトツリーは、素早くコンパクトにアーカイブファイルに移動させることができます。
2 9.1 Capture
~~~~~~~~~~~~~~
新しいアイテムをキャプチャーするOrg Modeの新しい方法は、John Wiegleyによる素晴らしいrememberパッケージから、多大な刺激をうけて作られています。
Ver6.36以上のOrgでは"remember.el"の特別な設定を使用します。
"org-remember.el"は既存の設定と互換性を保つために、org-modeのパッケージの一部のままです。
org-rememberの資料については、[http://orgmode.org/org-remember.pdf] から確認できます。
ここで説明されるキャプチャー用の設定は、新しいユーザーにとっては最適でしょう。
あなたのorg-remember-tamplatesを変換するには、次のコマンドを使用します。
M-x org-capture-import-remember-templates RET
次に新しい変数をカスタマイズします
M-x cusomize-variable org-capture-templates
結果を確認し、カスタマイズした結果を保存します。
これで、新しいシステムに馴染むまでの間、"remember"と"capture"の両方を使うことができます。
Captureを使えば、作業の手をほとんど止めずに素早くノートを取ることができます。
キャプチャーの基本的な動作はrememberと非常によく似ていますが、テンプレート等によって拡張されています。
2.1 9.1.1 Setting up capture
=============================
次の設定はノートを取るためのデフォルトのファイルを指定し、新しいノートを取るためのキー設定をしています。
(setq org-default-notes-file (concat org-directory "/notes.org"))
(define-key global-map "\C-cc" 'org-capture)
2.2 9.1.2 Using capture
========================
- C-c c -> org-capture
org-captureを呼びます。このキーバインドはデフォルトではアクティブではありません。
- C-c C-c -> org-capture-finalize
キャプチャー用のバッファに記入が終わったら、C-c C-cを入力してキャプチャーを抜けます。
- C-c C-w -> org-capture-refile
ノートをデフォルトの場所とは別の場所に保存します。
- C-c C-k -> org-capture-kill
キャプチャーを保存せずにキャンセルします。
org-captureは"k" "c"のキーを組み合わせることによって、アジェンダビューからも呼び出せます。
この方法では、タイムスタンプが現在時刻ではなく、アジェンダ上のカーソルがある日にちで挿入されます。
最後に保存されたキャプチャーの場所を確認するには、org-captureをプリフィックス突きで呼び出します。
- C-u C-c c
- C-u C-u C-c c
2.3 9.1.3 Capture templates
============================
異なるキャプチャー対象によって、テンプレートを使い分けることができます。
最も簡単にテンプレートを作るには、C-c c Cで"org-capture-templates"をカスタマイズすると良いでしょう。
テンプレートについて細かく説明する前に、例を見てみましょう。
TODO項目を作るためにテンプレートを使いたいとします。
その項目は、"~/org/gtd.org"というファイルの、"Tasks"というヘッドラインの下に保存することにします。
同様に、"journal.org"というファイルには、日記をつけることにします。
これらを反映すると以下のようになります。
(setq org-capture-templates
'(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks")
"* TODO %?\n %i\n %a")
("j" "Journal" entry (file+datetree "~/org/journal.org")
"* %?\nEntered on %U\n %i\n %a")))
この設定でC-c c tを押すと、Orgは以下のようなテンプレートを準備します。
* TODO
[[file:link to were you initiated capture] ]
テンプレートの設定中、"%a"はキャプチャーを呼出た場所へのリンクに置き換えられます。
これは、例えばメールに関係したタスクを作成するときなどには非常に便利でしょう。
タスクの内容を書いてC-c C-cを押すと、キャプチャーを呼んだときと同じ場所に戻ります。
テンプレート選択のバッファを経由せずに特定のテンプレートを呼び出したい場合には、
キーバインディングを以下のように設定できます。
(define-key global-map "\C-c c"
(lambda () (interactive) (org-capture "t")))
2.3.1 9.1.3.1 Template elements
--------------------------------
テンプレート中で使える要素を見ていきましょう。
- keys
"key"はテンプレートを選択するための文字です。
例えば、
("b" "Templates for making stuff to buy")
と設定してある場合、"b"を押すことで、"stuff to bur"を記録するためのテンプレートを選択できます。
- description
テンプレートの内容を説明するための短い説明です。
- type
キャプチャーの種類です。いくつかの種類があります。
- entry
Org-modeのノードです。(**が付いたやつ)
保存先のファイルはOrg-modeのファイルである必要があります。
- item
プレーンリストのアイテムを追加します。
追加先は保存先の先頭のプレーンリストです。
これもOrg-modeのファイルに保存する必要があります。
- checkitem
チェックボックスのアイテムを追加します。
- table-line
保存先の最初の表にアイテムを追加します。
- plain
ただのテキストを追加します。
- target
キャプチャーしたアイテムの保存先を記述します。
Org-modeのファイルでは、保存先はノードで記述します。
追加したアイテムは保存先のノードの子ノードとして保存されます。
ほとんどの場合、ターゲットの指定には保存先のファイル名が含まれます。
ファイル名の指定がない場合は、org-default-notes-fileで指定されるデフォルトの保存先に保存されます。
以下は設定の例です。
- (file "path/to/file")
テキストが指定されたファイルの最初または最後に追加されます。
- (id "id of existing org entry")
CUSTOM_IDが設定されたノードに子ノードを作るか、その下に文章を追加します。
- (file+headline "path/to/file" "node headline")
ファイルの特定のノードの下にアイテムを追加します。
- (file+olp "path/to/file" "Level 1 heading" "Level 2" ...)
もし追加したいノードの名前がユニークなものでなければ、階層で指定するのが安全です。
- (file+regexp "path/to/file" "regexp to file location")
保存先を指定するのに正規表現を使います。
- (file+datetree "path/to/file")
今日の日付の見出しを作ります。
- (file+datetree+prompt "path/to/file")
日付が見出しになったノードを追加しますが、日付の入力(指定)ができます。
- (clock)
現在クロックで時間を計測しているファイルへアイテムを追加します。
- (function function-finding-location)
ファイルと保存先を指定するための独自の関数を書く事もできます。
- template
キャプチャーアイテムを作るためのテンプレートです。
ここを空欄にしておくと、デフォルトのテンプレートが使われます。
ここで使えるエスケープコードについては、次の章を参照してください。
- properties
下記のpropertyを付け加えることもできます。
- :prepend
通常キャプチャーされたアイテムは、指定した場所の後ろに追加されます。
このプロパティーはその順序を変更します。
- :immediate-finish
このプロパティーがセットされると、アイテムの編集画面に移行せず、
指定したデータを速やかにファイルに保存します。
- :empty-lines
新しいアイテムの前後に空行を追加します。
デフォルトは"0"で"1"だけだ設定できます。
- :clock-in
このアイテムで時間の計測を始めます。
- :clock-resume
時間を計測している途中にキャプチャーを始めた場合、キャプチャーが終了したら計測を再開します。
- :unnarrowed
ターゲットとなるバッファのナロウイングをしません。
デフォルトではナロウイングを行うので、キャプチャーする対象部分に集中できます。
- :kill-buffer
キャプチャー終了後、対象のバッファをkillします。
2.3.2 9.1.3.2 Template expansion
---------------------------------
template中では、%-escapes を使うことにより動的な挿入ができます。
- %^{prompt}
ユーザーに文字入力を求め、その結果を挿入します。
- %a
org-store-linkのリンクを作成します。
- %A
%aと同じようにリンクを作成しますが、リンク先を入力できます。
- %i
リージョン選択中にキャプチャーを始めた場合、選択された文字列を挿入します。
- %t
日付のみの入ったタイムスタンプを挿入します。
- %T
日付と時刻が入ったタイムスタンプを挿入します。
- %u, %U
アジェンダに表示されないタイムスタンプを挿入します。
- %^t
タイムスタンプを挿入しますが、日付等を指定できます。
%^T %^u %^Uなども同様に指定できます。
例えば、
%^{Birthday}t
などと使えます。
- %n
user-full-nameで指定されたユーザー名を挿入します。
- %c
kill ringの先頭にある文字列を挿入します。
- %x
クリップボードのコンテンツを挿入します。
- %^C
どのアイテムを挿入するか、kill ring(クリップボード)のアイテムを選択できます。
- %^L
%^Cと同様の動きをしますが、リンクとして挿入します。
- %k
現在時間を計測中のタスクのタイトルを挿入します。
- %K
現在時間を計測中のタスクへのリンクを挿入します。
- %^g
プロンプトからタグの指定ができます。
保存先でタグを指定している場合、その中から選択できます。
- %^G
プロンプトからタグの指定ができ、
アジェンダファイルに指定されているすべてのファイルで使用しているタグの中から選択できます。
- ^{prop}p
{}の中に書かれたプロパティーに渡す値をプロンプトから指定できます。
- :keyword
キャプチャー対象によって使えるキーワードが決まっています。
詳しくは下を見てください。
- %[file]
[]中に書かれたファイルの中身を挿入します。
- %(sexp)
()中に書かれたEmacs Lispを評価して、結果を挿入します。
特定のリンクタイプの場合、以下のkeywordが使用できます。
Link Type Available keywords
------------------------+---------------------------------------------
bbdb %:name %:company
------------------------+---------------------------------------------
irc %:server %:port %:nick
------------------------+---------------------------------------------
vm, wl, mh, mew, rmail %:type %:subjuct %:message-id
%:from %:fromname %:fromaddress
%:to %:toname %:toaddress
%:date (message date header field)
%:date-timestamp (date as active timestamp)
%:date-timestamp-inactive
%:fromto
------------------------+---------------------------------------------
gnus %:group
------------------------+---------------------------------------------
w3, w3m %:url
------------------------+---------------------------------------------
info %:file %:node
------------------------+---------------------------------------------
calendar %:date
template選択後に、カーソルを表示させる位置を決める場合は、
%?
を使ってください。