我想将
foobar
中的两个源块纠缠在一起,以获取相应属性 foobar.el
中指定的文件。但是,我只知道两个选项都不符合要求:
C-u org-babel-tangle
缠结仅在点处获取块,否则会出现“点不在源块中”
org-babel-tangle
缠结文件中的所有源块。在本例中,有 3 个,这会导致覆盖 foobar.el
和 qux.el
对于这样一个简单的示例,我可以合并两个源块,但这通常不起作用 (1)。
**.org*
* foobar
:PROPERTIES:
:header-args: :tangle ../el/foobar.el
:END:
#+begin_src emacs-lisp
(message "foo")
#+end_src
#+begin_src emacs-lisp
(message "bar")
#+end_src
* qux
:PROPERTIES:
:header-args: :tangle ../el/qux.el
:END:
#+begin_src emacs-lisp
(message "qux")
#+end_src
备注:
例如:1)要纠结的文件有ext
sh
; 2) 源块 A 指定 shebang 3) 源块 B 调用标头 (:var ...
) 中指定的变量。合并 A 和 B 会将变量声明放在 shebang 之前,这是没有根据的。
要将子树内的多个源块缠结到同一个文件,请执行
M-x org-set-property-and-value RET header-args: :tangle /path/to/file
M-x org-narrow-to-subtree
M-x org-babel-tangle