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 / 03:53

3 respostas

7

(Primeiramente, você precisa de um ponto-e-vírgula antes do último } para que seja válido C; o ponto-e-vírgula deve ser considerado como instruções de terminação em C, em vez de como separar instruções. O recuo automático inteligente pode não funcionar corretamente a menos que você adicione esse ponto e vírgula.)

O comando = do Vim ( :help = ) pode ser usado para executar código através de um programa de recuo automático, embora exija alguma configuração. A idéia básica é que você defina a opção equalprg ( :help 'equalprg' ) para um programa que aplique o recuo desejado e, em seguida, use = no modo de comando para executá-lo. = funciona como outros comandos baseados em movimento do Vim, como d e y ; por exemplo, == recua a linha atual, =ap indenta um parágrafo ou você pode usar um intervalo visual: ggVG= recua o arquivo inteiro.

Agora, por padrão, equalprg é definido como a string vazia, que só faz o recorte por linha básico embutido no Vim. Para fazer o tipo de coisa que você está pedindo, a melhor ferramenta para o trabalho é indent :

recuo

indent tem uma vasta gama de opções para vários estilos de recuo; por padrão, ele usa o estilo de codificação GNU, mas você provavelmente desejará personalizá-lo para se adequar às preferências do seu projeto. Vejo recuo do homem para detalhes. Para incluir espaços no valor de equalprg , é necessário citá-los com uma barra invertida. Por exemplo, se você quiser usar o estilo de recuo K & R, use :set equalprg=indent\ -kr .

Você também pode fazer com que o comando '=' escolha o recuo apropriado com base no tipo de arquivo, usando :filetype indent on - type :help filetype no vim para obter mais informações.

:set autoindent dirá ao vim para recuar enquanto você digita. Adicionar qualquer um desses comandos (menos o ':' inicial) ao seu arquivo ~ / .vimrc os tornará permanentes.

    
por Colin Watson 06.05.2011 / 10:55
1

Este plugin vim usa formatadores externos para formatar o código dentro do vim. É, portanto, mais strong do que o mecanismo de indentação do vim.

vim-autoformat no GitHub

    
por Chiel ten Brinke 23.03.2013 / 10:34
0

Como qualquer outro editor de texto, o VIM não faz isso automaticamente.

Abra um arquivo com o vim, pressione i para inserir, e agora você pode editar livremente, quando terminar, pressione Esc para sair do modo de inserção e fechar e salvar o documento escreva :wq para escrever, saia.

    
por DemonWareXT 06.05.2011 / 08:00

Tags