Orgモードキャプチャ

Orgモードキャプチャ

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キャプチャ プロセスが完了する前にその関数を実行することもできます。

関連情報