组织模式 - 如何使用org-capture创建新文件?

sam*_*sam 7 emacs org-mode

我想创建一个组织捕获模板,为emacs org-mode中的捕获创建动态文件名.

我希望文件的名称采用以下形式:(format-time-string"%Y-%m-%d")" - "(提示输入名称)".txt"

示例:2012-08-10-MyNewFile.txt

根据这个答案,我知道如何动态创建文件名以包含日期:

`(defun capture-report-date-file (path)
(expand-file-name (concat path (format-time-string "%Y-%m-%d") ".txt")))

'(("t" "todo" entry (file (capture-report-date-file  "~/path/path/name"))
"* TODO")))
Run Code Online (Sandbox Code Playgroud)

这允许我创建一个文件2012-08-10.txt并在第一行插入*TODO

我怎么能添加提示来完成文件名?

Jon*_*pin 12

你必须使用(read-string ...)in capture-report-data-file来动态生成文件名.

(defun capture-report-data-file (path)
  (let ((name (read-string "Name: ")))
    (expand-file-name (format "%s-%s.txt"
                              (format-time-string "%Y-%m-%d")
                              name) path)))

'(("t"
   "todo"
   entry
   (file (capture-report-date-file  "~/path/path/name"))
   "* TODO")))
Run Code Online (Sandbox Code Playgroud)

这将提示捕获文件名,然后打开捕获缓冲区将被创建.

  • 这对我不起作用。我刚刚收到“无效文件”错误? (2认同)