Fiquei um pouco estragado usando Eclipse e java. Comecei a usar o vim para fazer a codificação C em um ambiente Linux. Existe uma maneira de fazer com que o vim faça automaticamente o espaçamento adequado para os blocos?
Então, depois de digitar um {a próxima linha terá 2 espaços recuados, e um retorno nessa linha irá mantê-la no mesmo recuo, e a} vai voltar 2 espaços?
c
vim
coding-style
vi
zxcv
fonte
fonte
Eu escrevi tudo sobre guias no vim , o que mostra algumas coisas interessantes sobre as quais você não perguntou. Para recuar os colchetes automaticamente, use:
:set cindent
Para recuar dois espaços (em vez de uma tabulação de oito espaços, o padrão do vim):
:set shiftwidth=2
Para evitar que o vim converta oito espaços em guias:
:set expandtab
Se você quiser alterar o recuo de um bloco de texto, use <e>. Eu geralmente uso isso em conjunto com o modo de seleção de bloco (v, selecione um bloco de texto, <ou>).
(Eu tentaria dissuadi-lo de usar recuo de dois espaços, já que eu (e a maioria das outras pessoas) acho difícil de ler, mas isso é outra discussão.)
fonte
Muitos recursos do vim (como
autoindent
ecindent
) são desativados por padrão. Para realmente ver o que o vim pode fazer por você, você precisa de um decente~/.vimrc
.Um bom começo está dentro
$VIMRUNTIME/vimrc_example.vim
. Se você quiser experimentar, usequando em vim.
Na verdade, eu sugiro apenas copiar o conteúdo para o seu
~/.vimrc
como está bem comentado, e um bom lugar para começar a aprender como usar o vim. Você pode fazer isso porIsso substituirá seu atual
~/.vimrc
, mas se tudo o que você tiver lá forem as configurações de recuo que Davr sugeriu, eu não me importaria, pois o vimrc de exemplo cuidará disso para você também. Para uma explicação completa do exemplo e o que ele faz por você, veja:help vimrc-intro
.fonte
Basta executar:
user@host:~ $ echo set autoindent >> .vimrc
fonte
Acho que a melhor resposta é realmente explicada no vim wikia:
http://vim.wikia.com/wiki/Indenting_source_code
Observe que desaconselha o uso de "definir indentação automática". A melhor característica de todas que encontrei nesta explicação é ser capaz de definir configurações por arquivo, o que é especialmente útil se você programar em python e C ++, por exemplo, já que você gostaria de 4 espaços para guias no anterior e 2 para espaços no último.
fonte
e lembre-se sempre desta venerável explicação de Spaces + Tabs:
http://www.jwz.org/doc/tabs-vs-spaces.html
fonte
Experimentar:
definir sw = 2
definir ts = 2
definir smartindent
fonte