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.

lookyhooky
la source

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.

Omar
la source
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