Вот еще один способ сделать это:
Сначала оцените это определение функции в буфере *scratch*
:
(defun indent-marked-files ()
(interactive)
(dolist (file (dired-get-marked-files))
(find-file file)
(indent-region (point-min) (point-max))
(save-buffer)
(kill-buffer nil)))
Затем откройте буфер Dired на верхнем уровне каталога, в котором вы хотите изменить все файлы. Присвойте команде dired числовой префикс, чтобы она запрашивала переключатели для команды ls
и добавьте переключатель R
(recurse): Cu Cx d R RET your-directory RET .
Далее отметьте все обычные файлы в списке рекурсивных каталогов: сначала * / , чтобы отметить все каталоги, затем * t , чтобы переключить выбор.
Наконец, выполните приведенную выше команду: M-x indent-отмеченные-файлы .
Имейте в виду, что если у вас уже есть какие-либо буферы, посещающие любой из целевых файлов, они будут уничтожены indent-marked-files
. Также помните, что ни одно из изменений файла не будет отменено; используйте с осторожностью! Я проверил это в простом случае, и он, кажется, работает, как описано, но я не даю никаких гарантий.