关于org tangle

最近体验了下文学编程和配置管理 感觉还不错的

但是有个问题 我的 org 每个标题下 都有若干代码段 如何指定只导出哪个标题下的

emacs --batch --eval “(progn (require 'org) (setq org-confirm-babel-evaluate nil) (org-babel-tangle-file "~/.config/doom/config.org"))”

这样把整个文件都给导了

在不需要tangle 的上面加一个 :tangle no

1 个赞

如果不想用一楼的方法挨个添加 :tangle no,也可以将这个设置成文件全局属性,然后在你要导出的那个标题下设置 :header-args: :tangle yes,如果标题下有子标题,可能还需要设置 org-use-property-inheritance t

我每个大标题都是:tangle yes
因为笔记里有多个大标题 我只想导出某个标题 手动改tangle no 有点麻烦

反向操作啊。先全部改no(替换就可以),然后将要导出的改yes。

你说的有道理。不知道有没有更高级的操作

找到几个有用的信息,虽然不是直接答案,但是可能对你有所帮助:

  1. org-babel-goto-named-src-block , 指定一个命名代码块,可能可以通过遍历一个subtree下的所有代码块来实现?

    相关链接:command line arguments - How can I tangle a specific org mode header from commandline? - Emacs Stack Exchange

  2. org-narrow-to-subtree, 或许可以先跳入指定subtree并对其进行narrow,然后再tangle?

    相关链接:[Orgmode] Re: Tangle subtree only?

  3. org-babel-tangle, 非常规用法?

    相关链接:org mode - How to org-babel-tangle only one code block? - Stack Overflow

看起来 第一个挺靠谱 详细看一下哈 感谢