2014-01-12 20 views
2

如果%-escape爲空白,我希望具有不插入某些文本的org-capture-template。我實際上使用org-protocol和:immediate-finish模板,因此我無法手動編輯和刪除緩衝區中的空白行。有時我可能會選擇網頁上的文字,有時我可能不會。我也一般對能夠製作更多動態模板感興趣。如果初始內容爲空白,org-capture-templates是否可以不插入行

藉此捕獲模板爲例

(setq org-capture-templates 
     (quote (("w" "capture" entry (file "~/org/refile.org") 
       "* [[%:link][%:description]] :NOTE:\n%i\n%U\n" :immediate-finish t)))) 

隨着org-protocol://capture://w/http%3A%2F%2Fstackoverflow.com%2F/Stack%20Overflow/Hot%20Network%20Questions

我明白這一點。

* [[http://stackoverflow.com/][Stack Overflow]] :NOTE: 
Hot Network Questions 
[2014-01-12 Sun 13:01] 

但是如果我沒有像這個例子org-protocol://capture://w/http%3A%2F%2Fstackoverflow.com%2F/Stack%20Overflow/那樣選擇文本。

我得到這個:

* [[http://stackoverflow.com/][Stack Overflow]] :NOTE: 

[2014-01-12 Sun 12:58] 

我想知道如何,而不必使用兩個模板擺脫在最後一個例子空白行。

我的想法是以某種方式使用引號在模板創建時動態創建字符串,但我不知道如何獲取%i的值來評估。

+0

請添加最少的工作示例:命名一個文件,而不是「」,給初始內容,實際內容和預期的內容。 –

+1

我重做了一個示例驅動。我同意,這是一個更好的問題。謝謝。 – studgeek

回答

1

使用此輔助功能:

(defun v-i-or-nothing() 
    (let ((v-i (plist-get org-store-link-plist :initial))) 
    (if (equal v-i "") 
     "" 
     (concat v-i "\n")))) 

並將此作爲捕獲模板:

("w" "capture" entry (file "~/refile.org") 
    "* [[%:link][%:description]] :NOTE:\n%(v-i-or-nothing)%U\n" 
    :immediate-finish t) 
+0

真棒,組織鏈接plist變量是我正在尋找的確切技巧! – studgeek

相關問題