Como faço para que o autoindent do vim não deixe espaços à direita?

7

Em alguns editores de texto (por exemplo, Kate, gedit), quando o recuo automático estiver ativado, pressionar a tecla return duas vezes deixará um espaço em branco à direita (o que eu quero):

if (code) {
....
....|
}

Enquanto outros atendem ao padrão de codificação em que espaços finais (mesmo em linhas em branco) não são permitidos:

if (code) {

....|
}

O que me incomoda é que, se eu flechas após o recuo automático, o recuo automático é perdido:

if (code) {
|
....
}

Se eu executar vim e :set autoindent , obtenho o último comportamento.

Minha pergunta é: como definir o vim para manter os espaços à direita em vez de removê-los automaticamente se eles não forem usados?

    
por Joey Adams 16.03.2010 / 21:45

3 respostas

3

Veja esta dica no wiki vim de como ter o recuo correto mesmo para linhas vazias. Se você quer apenas manter o recuo anterior (ignorando o vim calculado como o recuo correto) use let ind = indent(prevnonblank(v:lnum - 1)) como explicado em um comentário na mesma entrada do wiki.

    
por 17.03.2010 / 05:04
1

Eu encontrei esta solução para trabalhar para mim:

:inoremap <Return> <Space><BS><Return>
    
por 24.10.2011 / 09:00
0

No meu .vimrc:

" Change a blank line upon creation so that its leading spaces won't be removed
inoremap <Return> <Return><Space><BS>
nnoremap o o<Space><BS>
nnoremap O O<Space><BS>
    
por 18.11.2015 / 18:46