No modo de inserção, o cursor está entre caracteres ou antes do primeiro ou após o último caractere. No modo normal, o cursor está sobre um caractere (novas linhas não são caracteres para esse fim). Isso é um tanto incomum: a maioria dos editores sempre coloca o cursor entre os caracteres e faz com que a maioria dos comandos atue no caractere depois (não, estritamente falando, abaixo ) do cursor. Talvez isso se deva em parte ao fato de que antes das GUIs, os terminais de texto sempre mostravam o cursor em um caractere (sublinhado ou bloco, talvez piscando). Essa abstração falha no modo de inserção porque isso requer mais uma posição (postagens versus cercas).
A alternância entre os modos deve mover o cursor por meio caractere, por assim dizer. O i
comando se move para a esquerda, para colocar o cursor antes do caractere que acabou. O a
comando se move para a direita. Sair do modo de inserção (pressionando Esc) move o cursor para a esquerda, se possível (se estiver no início da linha, é movido para a direita).
Suponho que o Esccomportamento meio que faça sentido. Muitas vezes, você está digitando no final da linha e Escsó pode ir para a esquerda. Portanto, o comportamento geral é o comportamento mais comum.
Pense no caractere abaixo do cursor como o último caractere interessante e no comando insert como a
. Você pode repetir a Escsem mover o cursor, exceto que você encontrará uma posição correta se iniciar no início de uma linha não vazia.