格式如:
("r" "Reading" entry (file+olp "~/org/books.org" "阅读书目" "2020")
"* TODO %^{The book's name} %^g\n%^{STYLE}p")
“阅读书目”后面的那个 「2020」是当前年份,怎么用自动获取的当前年份变量替换它?
请指教。
格式如:
("r" "Reading" entry (file+olp "~/org/books.org" "阅读书目" "2020")
"* TODO %^{The book's name} %^g\n%^{STYLE}p")
“阅读书目”后面的那个 「2020」是当前年份,怎么用自动获取的当前年份变量替换它?
请指教。
啊~,又来一个问题,其中的 %^g
获取的 TAGS 列表好似出不来。
我没有在 .el
中定义 TAGS 列表,是在每个 org
文件中定义的。
%^g
有没有办法获取每个 org
文件中定义的 #+TAGS:
列表?
记得有个 type 是 function, 所以试试 file+olp+function, 然后 写个 function 来获取 2020.
获得年份:
(format-time-string "%Y")
;; => "2020"
如果要执行 list 中的一部分元素,改写成 list / cons 函数调用
'(1 (+ 2 3) 4)
;; => (1 (+ 2 3) 4)
(list 1 (+ 2 3) 4)
;; => (1 5 4)
如果改写比较啰嗦,可以用 Backquote 宏来减少工作量
'((a (+ 1 2))
(b (+ 3 4)))
;; => ((a (+ 1 2)) (b (+ 3 4)))
(list (list 'a (+ 1 2))
(list 'b (+ 3 4)))
;; => ((a 3) (b 7))
`((a ,(+ 1 2))
(b ,(+ 3 4)))
;; => ((a 3) (b 7))
可以发现 `
的明显简单不少,不要觉得 `
神秘,它就是一个 Macro,自动把改成了上面的 list / cons 的形式。
Wrong type argument: stringp, (format-time-string “%Y”)
看看引号是不是中文的引号。。。
没有中文符号。
额,可能你没太看明白 @xuchunyang 的回复,大概是这样。
(add-to-list 'org-capture-templates
`("r" "Reading" entry (file+olp "~/org/books.org" "阅读书目" ,(format-time-string "%Y"))
"* TODO %^{The book's name} %^g\n%^{STYLE}p")
要用 backquote (`) 和逗号操作符 (,) 来做引用里面的部分求值。
按这个格式的话,报:
org-mks: Wrong type argument: stringp, \`
我再读读手册看看。
你是不是直接 (setq org-capture-templates 了,用上面的 add-to-list 方式试试。
果真如此!