2012-08-10 32 views
6

我想要创建一个组织捕获模板,创建一个动态文件名以在emacs组织模式下进行捕获。组织模式 - 如何使用org-capture创建新文件?

我想要的文件的名称采用以下形式: (格式时间字符串“%Y-%间%d”)“ - ”(提示名称)“.TXT”

举例:2012-08-10,MyNewFile.txt

基于this答案,我知道如何动态创建名称的文件,包括日期:

`(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"))) 

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

如何添加提示来完成文件名?

回答

9

您必须在capture-report-data-file中使用(read-string ...)才能生成文件名。

(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"))) 

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

+0

非常感谢Jonathan。这是完美的。 – sam 2012-08-10 14:20:55