Ao longo de sua carreira, você encontrará diversos estilos de formatação. Meu conselho é se acostumar com isso - aprenda a adaptar seu estilo ao do arquivo em que você está trabalhando. Entre outras razões, as ferramentas para traduzir de um estilo para o outro geralmente não fazem a viagem de ida e volta sem introduzir alterações no arquivo, e isso dificulta o uso de uma ferramenta como diff
para ver as alterações significativas que você fez. / p>
Dito isso, o Vim fornece vários ganchos para executar comandos conforme os arquivos são lidos e gravados. Veja
:help autocommand
Por exemplo,
au BufWrite * %s/\s\+$//
removerá espaços à direita de um buffer antes de você gravá-lo no disco. O comando pode ser qualquer comando ex incluindo chamar uma função ou filtrar todo o buffer através de um programa externo.
O evento BufWrite é acionado imediatamente antes de o buffer ser gravado. Outro nome para isso é BufWritePre. Se você quiser gravar o buffer, em seguida, desfazer as alterações feitas no evento BufWritePre, você pode usar o comando BufWritePost para reverter essas alterações. O evento BufRead (a.k.a. BufReadPost) pode ser usado para disparar comandos que formatam o texto da maneira que você deseja quando um arquivo é lido.
O * corresponderá a qualquer nome de arquivo. Você pode usar padrões de nome de arquivo, como .c, .cpp, para acionar seus comandos automáticos somente quando determinados tipos de arquivos forem lidos ou gravados.
Como outro exemplo,
au BufRead *.[ch] normal gg=G
irá recuar qualquer arquivo fonte C que você ler de acordo com suas regras de recuo. Veja
:help =
:help C-indenting