org-capture 用の「クラス」テンプレートを作成しようとしています。
私が望んでいるのは、次のようなエントリを簡単に作成することです。
* TODO <course>: Week <week> Lecture <number>
SCHEDULED: %^T
** TODO prepare for class: <course>-<week>-<number>
SCHEDULED: <two days before T> DEADLINE: <one day before T>
** TODO review class: <course>-<week>-<number>
SCHEDULED: <one day after T> DEADLINE: <two days after T>
現在、このテンプレートを持っています。
(setq org-capture-templates
'(
("c" "Class" entry (file "~/sydbox/personal/workflow/class.txt")
"* TODO %^{Course}: Week %^{Week} Lecture %^{Number}\n SCHEDULED: %^T\n ** TODO prepare for %{Course}-%{week}-%{Number}")
))
しかし、日付を入力する方法がわかりません。コースの日付と時刻を入力するように求められます。プロンプトへの回答を再利用する方法もわかりません。
答え1
テンプレートの拡張%\1
、%\2
などがプロンプトへの回答を再利用できるようにするため、次のように試すことができます。
("c" "Class" entry (file "~/sydbox/personal/workflow/class.txt")
"* TODO %^{Course}: Week %^{Week} Lecture %^{Number}\n SCHEDULED: %^{Sched}T\n ** TODO prepare for %\\1-%\\2-%\\3")
日付を入力するには、カレンダーが表示されます。そこからShiftキーと矢印キーを使って日付を選択するか、これらのコマンド。
答え2
必要な日付計算を実行し、キャプチャ テンプレート内のプレースホルダーを置き換える関数を記述し、org-capture-before-finalize-hook
キャプチャ プロセスが完了する前にその関数を実行することもできます。