[已解决]Org-Mode中org-capture捕获模板——关于datetree的设置问题

大家好。我在使用org-capture命令时发现了一个问题,就是不能在模板设置中使用datetree。

org-capture的设置如下:

(setq org-capture-templates
'((“s” “记录成功的事” entry (file+olp+datetree “~/documents/Doc-by-emacs/2-org/成功日记.org”) “* %?\n %i\n” :empty-lines 1)))

当设置中含datetree时,使用org-capture的时候,便会出现以下错误:

Debugger entered–Lisp error: (error “Invalid capture target specification”)
signal(error (“Invalid capture target specification”))
error(“Invalid capture target specification”) 
org-capture-set-target-location()
org-capture(nil)
funcall-interactively(org-capture nil)
call-interactively(org-capture nil nil)
command-execute(org-capture)

如果采用如下配置:

(setq org-capture-templates
'((“s” “记录成功的事” entry (file+olp “~/documents/Doc-by-emacs/2-org/成功日记.org”) “* %?\n %i\n” :empty-lines 1)))

那么就能通过C-c c s实现捕获。

请问各位,这是什么原因导致的?如何解决?

前一段时间还能用的 :sob:。最近刚弄完字体配置后出现了这个问题,不清楚是不是和字体设置有关。

win7+GNU Emacs 25.3.1 (x86_64-w64-mingw32)+org 8.2.10(Emacs自带的)

你先升级org试试

如果升级的话,是不是直接用包管理器安装新的org就可以了?

如果你不能动脑 那就先动手吧

因为目前的org是Emacs自带的,我不确定直接在插件中升级是否会引起其他问题,所以想确认一下。

你先把字体配置注释掉,看是不是字体配置的问题

我用的是下面这个。版本是org-9.1.13。

我觉得楼主的问题是少了:tree-type这个东西。

(add-to-list 'org-capture-templates
                 '("t" "Todo task" entry
                   (file+olp+datetree "/path/to/file.org")
                   "* TODO %^{task}" :tree-type week))

谢谢回复。刚才试了一下,在后面加上:tree-type week,发现不管用。:sob:

赶紧升级org,别用8了,确实有改动。

1 个赞

我用包管理器升级最新版Orgmode 9.1.4时,出现编译错误,无法升级😭

干脆直接升级到emacs26.1?

反正emacs也基本没有什么「升级成本」一说

1 个赞

我在官网重新下了Emacs 26.1,里面自带的Org版本是9.1.9,然后问题就没有了。谢谢你啊。:blush:

谢谢大家的帮助@zhouchongzxc @xhcoding @bluerain @cireu ,问题已解决。
解决方法是升级Emacs至26.1。这样,Orgmode也升级到了9.1.9。
之间我用的是Cygwin中的Emacs,里面的是最新版的Emacs 26.1,Org就是9.1.9。
我之前参照的也是9.1.4版本的教程,所以用Org 8j时估计不支持,从而出现错误。因此升级到Org 9时,问题就解决了。
PS:写法本身并没有错误。