VIM: Edite o código com opções de formatação específicas, salve / confirme com diferentes opções de formatação

1

Raramente uma equipe de programadores concorda com as opções de formatação, como guias vs. espaços, abrindo chaves em novas linhas e outras opções. Existe uma maneira de fazer com que o VIM analise um arquivo (mesmo através de um utilitário externo, como arrumado) automaticamente ao abrir e escrever de forma que eu edite desta forma:

if ( something != other ) {
    Console.WriteLine("Var: {0}", something);
} else {
    Console.WriteLine("Just some code");
}

No entanto, o arquivo seria salvo assim:

if ( something!=other )
{
    Console.WriteLine("Var: {0}", something);
}
else
{
    Console.WriteLine("Just some code");
}

Isso seria relevante para converter em ambas as direções em aberto e em gravação.

    
por dotancohen 10.08.2011 / 22:26

3 respostas

3

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
    
por 10.08.2011 / 23:29
0

Para ajustar o tamanho de um recuo real da guia, você pode usar a diretiva tabstop . no seu .vimrc . Eu tenho o meu definido para 3

set tabstop=3
    
por 10.08.2011 / 22:42
0

Confira este plug-in: link .

Parece que é exatamente o que você está procurando. Ele formata seu arquivo de origem com um botão pressionando por meio de formatadores externos.

    
por 20.01.2013 / 19:14

Tags