自动化采集:org-capture 如何不交互的情况下,保存到文件?

org-capture 默认会打开一个交互式的 buffer 输入模板内容,如果想跳过交互只根据参数生成内容,可以:

  1. 在模板中使用默认内容,不需要交互输入:
("t" "Task" entry  
  (file+headline "~/org/gtd.org" "Tasks")
  "* TODO ${title}\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n")

用 ${title} 等变量设置默认内容。 2. 在调用 org-capture 时传入参数:

(org-capture nil "t" '(title "买菜" ))
  1. 设置 org-capture-templates 的 :immediate-finish t 这样调用时就会自动填充内容并保存到目标文件,不需要手动输入和确认。
  2. 也可以在函数中程序调用 org-capture:
(defun my/add-task (title)
  (org-capture nil "t" `(title ,title))
  (org-capture-finalize))

(my/add-task “hhh”) 运行报错:Wrong number of arguments: (0 . 2), 3

(org-capture &optional GOTO KEYS)

org-capture最多接受两个参数,你传了3个。