Código de recuo / formatação automática para o Vim?

27

Estou tentando usar o Vim mais e mais quando posso. Uma das minhas maiores aderências entre o Vim e um IDE como o Aptana é a capacidade de recuo automático.

Existe um meio de codificação automática de formatação (HTML, CSS, PHP) para que seja corretamente indentado?

Se sim, como você instala isso no vim? Eu não entendo muito os plugins. Eu tentei rever este segmento e isso me confundiu mais: Como alterar o auto vim -indent comportamento?

    
por chrisjlee 01.09.2011 / 22:47

7 respostas

43

Para recuar todo o arquivo automaticamente:

gg
=G

Explicado:

  • g - vá para
  • gg - vai para o início do arquivo
  • G - ir para o final do arquivo
  • = - recuo
por 02.09.2011 / 07:46
11

Eu não sei sobre a formatação automática de código existente, mas se você estiver escrevendo código e precisar de recuo automático:

  • :set autoindent (ou :set ai ) ativará o recuo automático
  • Ctrl - d para un-indent (AKA outdent) seu código
  • Guia ou espaços para recuo - Eu pessoalmente uso a guia
  • :set tabwidth=4 (ou :set tw=4 ) controlará em quantos espaços uma guia deve recuar o código
  • O comando >> indentará a linha atual. Se você prefixar por um número, digamos 4>> , ele irá recuar 4 linhas, começando com a linha atual.
  • Da mesma forma, o comando << irá desvincular uma linha

Espero que isso seja um bom começo.

    
por 01.09.2011 / 23:02
4

Recuo automático *.sh

Basta adicionar as seguintes linhas em ~/.vimrc

filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
    
por 20.12.2013 / 21:12
2

Este plugin facilita a formatação no seu código. Ele integra formatadores externos e tem um recuo na funcionalidade de recuo do vim.

link

Além disso, observe a diferença entre formatação e recuo. Recuo só corrige o espaço em branco antes de cada linha, enquanto a formatação também lida com qualquer outra coisa, como espaços em branco em torno de operadores, etc.

    
por 20.12.2013 / 21:01
0

No bash eu faço isso:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3

isso elimina comentários e reentena o script "bash way". não funcionará se o script contiver HEREDOCS, mas se você fizer isso:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3

funcionará com qualquer script, mas o script inteiro será recuado por 4 espaços. sinta-se livre para modificar, mas cite meu nome no seu script e publique-o! : D

    
por 15.12.2016 / 02:10
0

Crie / edite o arquivo ~/.vimrc e adicione a seguinte linha:

set autoindent
    
por 30.01.2017 / 06:10
0

A formatação automática / recuo do vim funciona muito bem. Primeiro, coloque esta linha no seu ~/.vimrc :

filetype plugin indent on

Em seguida, abra um arquivo no vim e digite gg=G

( gg move o cursor para a primeira linha. = executa o comando indent. G informa ao comando indent para executar a partir daqui até a última linha.)

Se a autoformatação estiver muito ruim, como toda linha é apenas deixada recuada, execute :scriptnames e verifique se .../indent/html.vim (ou qualquer idioma que você esteja usando) está na lista. Caso contrário, verifique se o ~/.vimrc está correto. Ou se você executou :filetype plugin indent on da linha de comando do vim, você precisará reabrir o arquivo :e

    
por 22.06.2018 / 20:40

Tags