O vim suporta a formatação de arquivos de código-fonte com o comando commannd gg=G
. gg
é um movimento (provavelmente redundante) que salta para o início do arquivo; =
é o comando indent e o movimento G
significa "executar até o final do arquivo". Eu sei, parece conversa alienígena ...
Para executar isso em muitos arquivos, você pode criar um arquivo e nomeá-lo como quiser, por exemplo, vim-indent.txt
, dentro do qual digite o seguinte:
gg=G:wq
com quebra de linha à direita.
Basicamente, este arquivo contém uma gravação de chaves que queremos pressionar ao executar o VIM. O comando :wq<ENTER>
significa "write and quit", e deve ser terminado com uma quebra de linha. Sem isso, o vim apenas digitará o comando e ficará esperando que você pressione enter manualmente.
Você pode então executar o script em um arquivo como este:
vim -s vim-indent.txt your_file.js
O resultado é que o VIM abriria o arquivo your_file.js
e "pressionaria" todas as chaves gravadas em vim-indent.txt
, cujo resultado é aplicar recuo, gravar o arquivo e sair.
Você pode automatizar a execução deste comando em uma árvore de arquivos inteira usando find
:
find [path/to/your/directory] -type f -name '*.js' -exec vim -s vim-indent.txt "{}" \;
Note que é altamente recomendado que você copie todo o diretório, opere na cópia e verifique se você gosta do resultado.