Uso o vim há alguns anos como editor secundário, mas por várias razões, me vejo usando cada vez mais, mesmo quando meu editor principal está disponível. Um problema que sempre me incomodou vim
e que me impede de usá-lo mais é a maneira como ele lida com o posicionamento do cursor. O cursor pode estar apenas em um caractere, e não entre caracteres, como seria o caso de qualquer editor criado desde 1984.
Para apenas um exemplo de por que isso é um problema, se eu quiser excluir a última palavra de uma linha, pressionei $
para ir até o final da linha e depois db
para excluir para trás. Isso deixa um caractere a ser excluído, porque realmente$
não foi até o final da linha, foi para o último caractere da linha e excluiu apenas o que estava antes do caractere atual. O problema não é que eu tenho que digitar um caractere extra, é o pensamento extra envolvido em fazer o que deveria ser simples, o que distrai minha atenção do que estou realmente tentando realizar.db
Parece-me que o posicionamento mais moderno do cursor da ideia é superior em todos os vim
aspectos , e eu gostaria de mudar para usar essa abordagem. Tenho certeza de que alguns vim
fãs do núcleo discordam da minha opinião sobre isso, mas como um dos argumentos padrão para vim
a superioridade é sua infinita configurabilidade:
- pode entregar neste caso?
- Pode
vim
ser feito para colocar o cursor entre os caracteres?
Insert
modo ou perdendo o ponto denormal
modo. Eu faria$daw
ou$bdw
excluir a última palavra em uma linha no modo normal. NoInsert
modo que eu fariaA<Ctrl-w>
.$bD
Respostas:
Você pode
:set virtualedit+=onemore
, o que permite que você passe o último caractere. Infelizmente para você,$
ainda vai para o último personagem; você tem que passar o mouse para passar por isso. Por outro lado, você pode usarg$
, que normalmente vai para o último caractere da linha da tela em uma linha que envolve; noonemore
modo, ele também passa o último caractere de uma linha não quebrada (ou a última linha da tela de uma linha quebrada).:h 'virtualedit'
diz que esta opção pode atrapalhar os scripts, mas não sei qual é o grande risco na realidade.fonte