Czy można org-bable-splątać plik org z linii poleceń?


15

Chciałbym zarządzać plątaniem plików org za pomocą Makefile. Chociaż nie mogę znaleźć żadnych informacji na temat sposobu plątania plików z wiersza polecenia.

Odpowiedzi:


12

Możesz użyć czegoś takiego jak:

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

(To cytowanie powłoki jest przeznaczone dla Basha, dostosuj, jeśli używasz innej powłoki.)

EDYCJA: Dzięki @SkydiveMike za wskazanie, że pomyłkowo napisałem org-babel-tanglezamiast org-babel-tangle-file.


Próbowałem i otrzymałem Wrong type argument: stringp, nilkomunikat o błędzie, jakieś sugestie dotyczące tego, co robię źle?
lookyhooky

1
Potrzebuję także -Lflagi, aby dodać bieżący katalog do ścieżki ładowania i -l file-to-tangle.orgzaładować plik przed próbą jego splątania.
lookyhooky

8
emacs --batch -l org foo.org -f org-babel-tanglelub emacs --batch -l org --eval '(org-babel-tangle-file "foo.org")'działa dla mnie.
xuchunyang

1
W przypadku skryptu Bash jest to przydatne:emacs --batch -l org --eval "(org-babel-tangle-file \"$1\")"
pentavalentcarbon

1
Dla kompletności rozwiązanie xuchunyang działa (w porównaniu z oryginałem), ponieważ ma plik org-babel-tangle-file (który akceptuje argument PLIK) w porównaniu z org-babel-tangle, który działa na bieżącym buforze.
SkydiveMike,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.