Org Capture:确定目标文件时提示信息

Org Capture: prompt for information when determining the target file

我正在寻找一个捕获模板,当 运行 时,它会提示用户提供更多信息以确定目标文件的路径。

我已经有几件了

一个函数,它要求用户提供数据和 returns 一个字符串:

(defun my/get-121-orgfile ()
  "Ask the user for the name of the participant so that we can build"
  (interactive)
  (read-string "Participant Name: ")
)

一个 org-capture-template 将 运行 在 emacs 加载时成功提示:

(setq org-capture-templates
    `(
      ("m1" "1-1 meetings")
      ("m1b" "prep for a 1-1 meeting" entry
       (file ,(concat "~/org/meetings/1-2-1/" (my/get-121-orgfile) ".org"))
       (file "~/org/templates/meeting-121-prep.org")
       :clock-in t)
))

我从 this SO answer 中获取了反引号和逗号模式,但我一直无法弄清楚如何将此行为的范围限定在 select 模板时:我想要提示每次我点击 <org-capture>m1b.

时弹出

反引号-逗号模式在这里没有帮助:它将在设置 org-capture-template 时调用该函数。您要做的是在执行捕获时调用该函数。

我知道的唯一方法是使用 org-capture-templates(function foo) 目标机制。文档字符串说:

        (function function-finding-location)
            Most general way: write your own function which both visits
            the file and moves point to the right location

因此您将无法像上面那样使用 (file ...) 目标。相反,您必须编写一个函数来获取您想要的所有信息,然后访问目标位置的目标文件并添加填写好的模板。

这不是一个完整的答案,但对于评论来说太长了,但也许它有助于为您指明正确的方向。