Personalizar configurações de autoindent no arquivo VIMRC

1

Eu tenho autoindent habilitado no meu arquivo .vimrc, mas tenho um bug / recurso irritante. Por exemplo, quando eu sou tabulado em 3 vezes, e eu retorno, a nova linha também é tabulada em 3 vezes. Então, quando eu clico em enter novamente, essa nova linha também é recuada 3 vezes, como deveria. O problema ocorre quando volto para a linha anterior (a primeira das duas novas linhas). O VIM remove automaticamente o espaço em branco porque o viu como uma linha vazia.

Existe uma maneira de impedir que isso aconteça? Gostaria de poder voltar a codificar assim:

teste de função () { <return> <return> } <up> <right>

Obrigado!

    
por Shane Reustle 26.02.2011 / 19:42

2 respostas

2

Eu não sei de nenhuma configuração de opção que faça o Vim automaticamente deixar essas linhas com o espaço em branco inicial. A solução usual é alterar seu estilo de edição para que você não perca esse espaço em branco ou usar um comando de modo normal como o , O ou S para iniciar uma nova linha para que o recuo seja feito automaticamente ou forçar o recuo na linha atual no modo de inserção com Ctrl-T ou Ctrl-F .

No entanto, se você realmente quiser usar essa seqüência de teclas específica e não perder o recuo, então acho que esse mapeamento funcionará.

:inoremap <Return> <Space><BS><Return>

Ao colocar um espaço (ou qualquer caractere) na linha, então retrocedendo sobre ele, você está dizendo ao Vim que é uma linha não vazia e deixará o espaço em branco sozinho.

    
por 26.02.2011 / 21:29
0

Remapeando a tag < Return > ou < CR > parece ótimo. Tem uma desvantagem: torna a utilização do preenchimento automático do Vim (< C-n >) mais difícil de usar. Ele também se choca com plugins que dependem do comportamento padrão, por exemplo, supertab .

Esta página: link  fornece uma solução alternativa: adicionar uma função para obter o recuo adequado, apesar das linhas em branco anteriores.

    
por 06.10.2012 / 17:16