Можно ли org-bable-запутать файл org из командной строки?

15

Я хотел бы справиться с запутыванием моих организационных файлов с помощью Makefile. Хотя я не могу найти информацию о том, как запутать файлы из командной строки.

lookyhooky
источник

Ответы:

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-tangleили emacs --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-file (который принимает аргумент FILE) по сравнению с org-babel-tangle, который работает с текущим буфером.
SkydiveMike