2012-08-10 29 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