每次在 org 文档里执行 org-capture
后,就会在当前的 Head 下面添加一个 Property 块。
我不想要这样的行为,我网上查了一下,说是设置:(setopt org-id-link-to-org-use-id 'create-if-interactive)
就可以了。但在我这(emacs 29.4)不起作用。
有没有朋友知道应该怎么设置?
不知道是不是你配置的某个插件设置的,我这里这个变量值是nil,可以describe-variable 看一下这个变量支持的选项,看哪个选项是你想要的行为
还可以看看你的org-capture-template
配置比较简单:
(setopt org-capture-templates
'(("t" "Todo" entry (file "inbox.org") "* TODO %?" :prepend t)))
这个行为:
每次在 org 文档里执行 org-capture
后,就会在当前的 Head 下面添加一个 Property 块
是 org 默认的行为。但很多时候都比较烦人。试了 org-id-link-to-org-use-id
的其他几个选项,都不行,网上也没太多相关的资料。
用emacs -q 试了下,不会自动添加property呀, 版本也是29.4, 系统linuxmint.
确实!用 emacs -q 测试没问题。
我用我现在的配置,把下面的配置注释了:
;; (setopt org-capture-templates
;; '(("t" "Todo" entry (file "inbox.org") "* TODO %?" :prepend t)))
也没问题。而且 org-mode 默认就自带一个默认的 task 模版。我这个配置属实多余了。
但是我现在的配置加上我自定义的 org-capture-templates 就有问题,而且我印象中一直有,导致我以为这个行为是 emacs 默认的了。原因没想明白。
再补充下,问题仍没解决:
我用自己的配置,注释或不注释自定义的 org-capture-templates ,新教一个 org 文件和 head,在下面执行 org-capture 就不会添加 property 块。但在我的另一个有很多笔记的 org 文件下这样操作仍会添加 property。 我用 emacs -q 测试上面两个文件,就又都没问题,就很奇怪🤔。
是 ID,用 org-capture 时会自动建立到那个 head 的 link。
还有,我目前的配置用 denote 新建的 org 文件中会出现这个问题,包括我上面说的有很多笔记的 org 文件也是用 denote 创建的。但我用 emacs -q,加载 denote (use-package denote)却又不会。有点难搞。
emacs -q 没问题说明是配置问题
全局搜索一下 capture / org-mode(与之相关的关键字) 相关的配置,一个一个地注释掉,测试一下是哪个配置导致的
找到对应出问题的配置后,再定位具体是什么引起的,如果对代码不了解,丢给 LLM 问问说不定就知道问题所在了
看下 after-save-hook
或 org-capture-prepare-finalize-hook
有没有什么函数自动创建了ID
都简单试过,与 org-capture 相关的就上面说的那一行。而且现在连这一行都注释了。
现在感觉跟 denote 有关,有没有也使用 denote 的朋友帮忙测试下,看下是否有同样的问题?
另外到怀疑的包里面搜下 org-id-get-create
好像确实跟 denote 的配置有关,可以通过设置 denote-org-store-link-to-heading
为 nil 来解决。多谢各位的帮助🙏!
1 个赞