Como eu formato código da web usando o Vim?

4

Por exemplo, para renderizar:

while (head == tail) { head++; a[head] = 0 }

em

while (head == tail)
{
    head++;
    a[head] = 0
}
    
por trVoldemort 06.05.2011 / 05:48

5 respostas

0

Você pode instalar o astyle e fazer o trabalho para você. No vim, você pode selecionar um bloco de código e fazer:

:'<,'>!astyle

(onde o <, '> foi adicionado para você quando você pressiona dois pontos.)

Isso substituirá o texto selecionado pela versão embelezada do astyle.

    
por 21.05.2011 / 03:16
0

Isso é para Windows ou Linux? Vou assumir o Linux já que é uma questão vim, mesmo que o vim esteja disponível para Windows.

O programa indent provavelmente já está instalado na sua caixa do Linux, portanto, não são necessárias instalações adicionais instaladas. Semelhante à resposta do ngm, você pode usar

:'<,'>!indent -

ou

!Gindent -

para beliscar um bloco de código ou todo o código do ponto atual até o final do arquivo. Certifique-se de incluir o '-' no final desse comando

Veja a página de manual para indent man indent para a quantidade volumosa de opções de formatação.

    
por 05.08.2011 / 07:21
0

One-liner:

:setfiletype sh|%s/{/{^M/g|%s/}/^M}/g|%s/;/;^M/g|normal ggVG=

Divisão: defina o tipo de arquivo para que o vim saiba qual a sintaxe usada (script de shell, neste caso):

:setfiletype sh  

insere novas linhas depois de caracteres '{' e antes '}' (digite CTRL - V digite a chave para obter um caractere literal de nova linha):

:%s/{/{^M/g
:%s/}/^M}/g

insira nova linha depois de ';' personagens:

:%s/;/;^M/g

o mesmo que digitar ggVG = no modo normal:
'gg' = ir para cima, 'V' = selecionar linhas visualmente, 'G' ir para baixo, '=' = formato automático:

:normal ggVG=

Isto é muito simples e irá falhar em muitos casos, por ex. se houver um ';' em uma string literal. Mas isso deve deixar o código mais legível.

    
por 06.05.2011 / 12:08
0

Use vim-autoformat para integrar automaticamente formatadores externos (por exemplo, clang-format e astyle para linguagens semelhantes a c) e execute-os com um botão de pressão.

    
por 23.03.2013 / 10:28
-1

Selecione o código no modo de seleção visual ( V ) e clique em =

    
por 06.05.2011 / 09:20

Tags