是否可以从命令行对一个组织文件进行org-bable-tangle?


15

我想管理与Makefile纠缠我的组织文件。虽然我找不到如何从命令行纠缠文件的任何信息。

Answers:


12

您可以使用类似:

emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "file-to-tangle.org")'

(该壳引号用于Bash,如果使用其他壳,请进行调整。)

编辑:感谢@SkydiveMike指出我误写了org-babel-tangle而不是org-babel-tangle-file


我尝试过并收到一条Wrong type argument: stringp, nil错误消息,关于我可能做错了什么建议?
lookyhooky

1
我还需要-L标记将当前目录添加到加载路径,并-l file-to-tangle.org在尝试纠缠文件之前加载文件。
lookyhooky

8
emacs --batch -l org foo.org -f org-babel-tangleemacs --batch -l org --eval '(org-babel-tangle-file "foo.org")'为我工作。
xuchunyang

1
对于Bash脚本,这很有用:emacs --batch -l org --eval "(org-babel-tangle-file \"$1\")"
pentavalentcarbon

1
为了完整起见,xuchunyang的解决方案有效(与原始解决方案相比),因为与在当前缓冲区上起作用的org-babel-tangle相比,它具有org-babel-tangle-file(接受FILE参数)。
SkydiveMike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.