能否将 emacs 作为命令行工具,对 org 文件执行 org-babel-tangle?

平时习惯用 org-babel-tangle 管理各种乱七八糟的配置文件

每次在其他机器 pull 下改动之后还得手动打开 emacs 去 tangle,然后再关闭,有点麻

有没有啥黑科技可以不打开 gui/tui emacs 就运行 emacs 函数?

确实可以,emacs 有命令行参数支持,但我没用过, 你问下 chatgpt.

1 个赞

emacs --batch -l ~/.emacs.d/init.el --eval “(org-babel-tangle-file "path/to/your/config.org")”

我之前就是在命令行里进行批量测试的,emacs 本身可以作为命令行的命令使用。你可以参考以上命令。

4 个赞

靠谱!还真有内置,以后到新机器上直接 make 启动就好,这太爽了哈哈哈

emacs --batch emacs.org -f org-babel-tangle

关键词:emacs batch mode

官方链接:https://www.gnu.org/software/emacs/manual/html_node/elisp/Batch-Mode.html

1 个赞

说起来,之前我闲着没事去翻公司的EDA文档源码,发现全是自动生成的org文件。IP核的信号引脚说明,一个文件十几万行表格,用GUI打开看很卡。构建脚本就是拿emacs batch mode编译,也不知道这上百份文档编译一次要花多久,不知是哪位上古大神的手笔……

好…狠

那我就放心地把大部分配置放在一个文件里了(不是)

doom emacs, config.org, 就这样做的。

我习惯用写 build.ninja 。让 ninja 批量 emacs, 很方便的。

rule target
   command = emacs --batch -l ~/.emacs.d/init.el --eval "( ... )"
...

很好奇,为啥要用 org 呢,客户难道都用 Emacs 吗?而且这么大表格,Emacs 打开也很卡呀 :rofl:

因为org方便从hdl代码批量生成表格。用org构建出pdf,再交付给客户

1 个赞

这是把 emacs 当作类似 rmd/quarto 那种工具了,org 不是最终交付产物,客户无感知

1 个赞