Вы можете использовать emacs
в пакетном режиме. Например, вы можете создать файл indent.el
(defun my/indent-file (fPath)
(let ((buffer (find-file fPath)))
(message (concat "indenting file " fPath))
(indent-region (point-min) (point-max))
(save-buffer)
(kill-buffer buffer)))
(mapcar 'my/indent-file argv)
и затем вызовите emacs, как этот, чтобы сделать отступ для множества файлов (обратите внимание, что он будет работать для любого языка, который может узнать emacs и знает, как сделать отступ):
emacs --load indent.el --batch MY_LISP_FILES
См. Например эта страница для получения дополнительной информации о идиоматических способах использования emacs
для пакетной обработки.
Редактировать
Вот однострочная строка, которая работает только с одним файлом, но не использует переменную argv
(будьте осторожны: важен порядок аргументов):
emacs --batch MY_FILE --eval '(indent-region (point-min) (point-max))' -f 'save-buffer'