Você pode usar o vim nos modos ex e command, a partir do terminal.
Para recuar um único arquivo:
vim -c "normal gg=G" -e <file-to-indent> <<'EOF'
:wq
EOF
Para recuar arquivos recursivamente, crie o seguinte script:
indent-with-vim.sh
vim -c "normal gg=G" -e $1 <<'EOF'
:wq
EOF
Agora, digite:
$ chmod u+x indent-with-vim.sh
$ find . | xargs -I {} ./indent-with-vim.sh {}
O Vim fará o possível para reindentar os arquivos. Você pode melhorar alguns tipos de arquivos específicos.
Para XML:
Para melhorar a formatação do PHP:
Faça o download http://www.vim.org/scripts/download_script.php?src_id=15001
(ele fará o download de um arquivo chamado php.vim)
Crie os seguintes diretórios em sua casa:
~/.vim/indent
E copie php.vim
para~/.vim/indent
Se você não estiver satisfeito com o resultado de qualquer tipo de arquivo, poderá procurar alternativas na Web (como htb para HTML, https://github.com/vim-ruby/vim-ruby para obter melhorias no Ruby e assim por diante. )
De qualquer maneira, você usaria ou a técnica .vimrc ou o arquivo de recuo foo.vim para melhorar o recuo.
Além disso, você pode alterar os parâmetros de localização para aplicar apenas a alguns tipos específicos, como:
find . -iname "*.html" -or -iname "*.xml"