Est-il possible d'organiser un fichier org à partir de la ligne de commande?


15

Je voudrais gérer l'enchevêtrement de mes fichiers d'organisation avec un Makefile. Bien que je ne trouve aucune information sur la façon d'enchevêtrer les fichiers à partir de la ligne de commande.

Réponses:


12

Vous pouvez utiliser quelque chose comme:

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

(Cette citation de shell est destinée à Bash, ajustez si vous utilisez un autre shell.)

EDIT: Merci à @SkydiveMike d'avoir souligné que j'avais écrit par erreur à la org-babel-tangleplace de org-babel-tangle-file.


Je l'ai essayé et j'ai reçu un Wrong type argument: stringp, nilmessage d'erreur, une suggestion de ce que je fais peut-être mal?
lookyhooky

1
J'ai également besoin de l' -Lindicateur pour ajouter le répertoire actuel au chemin de chargement et -l file-to-tangle.orgpour charger le fichier avant de tenter de l'enchevêtrer.
lookyhooky

8
emacs --batch -l org foo.org -f org-babel-tangleou emacs --batch -l org --eval '(org-babel-tangle-file "foo.org")'travaille pour moi.
xuchunyang

1
Pour un script Bash, cela est utile:emacs --batch -l org --eval "(org-babel-tangle-file \"$1\")"
pentavalentcarbon

1
Pour être complet, la solution de xuchunyang fonctionne (par rapport à l'original) car elle a org-babel-tangle-file (qui accepte un argument FILE) par rapport à org-babel-tangle qui fonctionne sur le tampon actuel.
SkydiveMike
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.