Você precisa executar uma expressão que verifique se a linha possui caracteres e age de acordo. Tente isto:
:noremap <expr> <end> (col('$')>1?"\<lt>end>\<lt>right>":'')
Veja:
:help :map-<expr>
Por padrão, a tecla End me leva ao último caractere na linha do Vim. No entanto, eu tenho set virtualedit=onemore
no meu vimrc, e eu realmente quero que o End me leve um caractere além do último caractere.
Primeiro eu tentei map <End> g$
, mas se a linha ficar fora do final da tela, só me levará ao último caractere visível.
Então eu tentei map <End> $<Right>
, mas se a linha estiver em branco, eu levo para a próxima linha, em vez de simplesmente não fazer nada.
Alguma idéia?
Você pode tentar isso.
:map <End> $a<space><ESC>
Isso moverá para o último caractere, depois acrescentará um espaço e depois será movido para ele.