Vim deixa o cursor sentar na nova linha

1

Existe uma maneira de deixar o cursor sentar em uma nova linha no Vim, similarmente ao comportamento padrão do Emacs?

Quando você exclui um caractere no meio de uma linha, o caractere é removido e o cursor agora fica no caractere à direita. Se você excluir um caractere no final da linha, no entanto, o caractere será removido e o cursor agora ficará no caractere que estava à sua esquerda . Eu gostaria que fosse capaz de se sentar na nova linha, que é o personagem (ou caracteres, dependendo do sistema) que estava à direita do personagem excluído. Eu também gostaria de poder ter o cursor sentado na nova linha em geral.

    
por Vaelus 16.06.2015 / 20:28

1 resposta

2

Isso é possível com a configuração virtualedit . Experimente, por exemplo :set virtualedit=onemore e leia mais em :h 'virtualedit' Note que isso pode quebrar plugins ou outros cantos menos testados no Vim.

Se você também quiser que x exclua a nova linha final nesse modo, talvez seja possível mapear x para fazer algo mais inteligente, por exemplo,

:nnoremap <expr> x col('$')==col('.')?'gJ':'x'

Isso basicamente mapeia x para uma expressão, que verifica se o cursor está no último caractere (a nova linha) da linha e, se estiver, ele será mapeado para o comando gJ . x será executado.

(Nota: não totalmente testado, pode haver alguns casos de borda)

    
por 16.06.2015 / 22:33

Tags