Emacs Batch

On le sait peu mais Emacs est aussi scriptable en mode batch.

Par exemple pour remplacer une chaine de caractères dans un fichier :

emacs --batch file --eval "(replace-regexp \"^toto\" \"tata\")" -f save-buffer

ou encore pour indenter un fichier C :

emacs --batch sample.c --eval "(progn (indent-region (point-min) (point-max) nil) (save-buffer))"

Il est aussi possible de placer le code à exécuter dans un fichier ELISP :

emacs --batch file --load file.el -f func-name

Et depuis Emacs 22 on peut utiliser le shebang :

#! /usr/bin/emacs --script
(...)
(...)
...