[已解决]org-mode tangle file 如何简化配置

我有很多代码块都隶属于 init.el

现在的问题是 每个代码块都需要指定 :tangle init.el

有没有办法 可以默认全部使用 标题的 #+NAME

或者不指定 就使用默认值 不要每个都写 :tangle init.el

试了各种姿势都不成功 就大神指点迷津

#+property: header-args :tangle "init-ui.el"

或者

:PROPERTIES:
:header-args: :tangle "main.tex"
:END:

来为 headline 或者是整个文件设定 header args。得到 headline 的标题是可以的,我记得 tangle 的值好像可以是一个 Emacs Lisp 函数,我觉得挺麻烦的,于是我就只用了上面这种方法

1 个赞

#+property: header-args:emacs-lisp :tangle init.el :comments no :noweb no-export 哈哈哈 我刚才也悟了 就是这样

有个新问题

我设置了两个不同的文件 但是没有生效 全部导入到init.el 很诡异。。。

这个才是为 headline 设定的……我上面说反了。

#+property 是设置整个 buffer 的

好的我试一试 只有这两行设置

执行导出的时候 一个代码块也没有导出 貌似所有的代码块都没有吃到父节点的 properties

这个属性好像就是个值 没啥卵用

你 headline 和 properties 之间夹了别的东西,所以没有读到 properties…… 把那行 name 去掉

你骗人。。去掉了也不能导出

https://lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00380.html

你自己的问题你自己好好排查

1 个赞

修好了。。。。 :header-args: :tangle init.el :noweb yes 写成了 :header-args:emacs-lisp :tangle init.el :noweb yes

而且还真不能加#+NAME 属性就吃不到了

感谢大佬~~~

单语言生效少了个 “:”,应该是这样

:header-args:emacs-lisp: :tangle init.el :noweb yes

可以看这里的文档:https://www.gnu.org/software/emacs/manual/html_node/org/Using-Header-Arguments.html

1 个赞

收到~~感谢指出