簡體   English   中英

組織模式捕獲:動態文件名

[英]org-mode capture : dynamic file name

我見過這個:

如何為組織捕獲鍵入動態文件條目

但不能讓它工作; 我收到“無效的文件位置:nil”。 在 org-mode 或 Emacs 本身中有什么改變以阻止它工作嗎? 否則:有關如何調試出現問題的建議?

我真正想要開始工作的是此頁面上描述的內容:

http://www.howardism.org/Technical/Emacs/journaling-org.html

我感興趣的捕獲模板是頁面底部的“Journal Note”:

(setq org-capture-templates '(
;; ...
("j" "Journal Note"
     entry (file (get-journal-file-today))
     "* Event: %?\n\n  %i\n\n  From: %a"
     :empty-lines 1)
;; ..
))

感謝您的幫助。

想通了……它對整個捕獲模板塊使用反引號而不是普通引號! 我錯過了這一點,因為我看到的所有答案都只有一個捕獲模板,前面有一個反引號; 我嘗試這樣做,但如果模板是“其中之一”,則這不起作用......

所以這里有一個比我發現的更豐富的片段; 我希望它可以幫助別人。

(setq org-capture-templates
  `(("t" "TODO" entry (file+datetree "~/Documents/org/tasks.org"  "Tasks")
     "* TODO [#C] %?\n   SCHEDULED: <%<%Y-%m-%d %a>>\n  [%<%Y-%m-%d %a>]\n  %a")
   ("T" "Travel" entry (file+datetree+prompt "~/Documents/org/travel.org")
    "* %?\n  :PROPERTIES:\n  :LOCATION:\n  :END:\n  %t\n  %a")
   ("j" "Journal Note" entry (
               file+olp+datetree
               ,(concat
                 org-journal-dir
                 (format-time-string "journal-%m-%d.org")))
   "* Event: %?\n %i\n  From: %a")
   )
  )

鍵是捕獲模板 def 塊開頭的反引號 ` 和被調用函數上的 (concat ... ) 之前的逗號。

Org-mode 8.2.10 和 9.1.9 之間似乎發生了一些變化,特別是 Org 處理模板元素的方式 而在早期版本的 Org 中,對中的第二個值(file ...)可能是 Org 將評估的函數,現在似乎只有字符串(文件路徑)在這里有效。

解決方法是使用反引號列表形式,並明確聲明該函數需要使用逗號進行評估:

(setq org-capture-templates `(
    ;; ...
    ("j" "Journal Note"
         entry (file ,(get-journal-file-today))
         "* Event: %?\n\n  %i\n\n  From: %a"
         :empty-lines 1)
    ;; ..
    ))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM