如何将子树中的所有源块缠结在一起?

问题描述 投票:0回答:1

我想将

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 之前,这是没有根据的。

emacs org-mode
1个回答
0
投票

要将子树内的多个源块缠结到同一个文件,请执行

  1. M-x org-set-property-and-value RET header-args: :tangle /path/to/file
  2. M-x org-narrow-to-subtree
  3. M-x org-babel-tangle
  4. `M-x 加宽
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.