Esta pregunta se hace con frecuencia entre los nuevos usuarios de vi / Vim, y la respuesta es que mientras está en modo normal, el cursor siempre está "en" un carácter, pero en modo de inserción el cursor siempre está "entre" dos caracteres (recuerde, el final -of-line es un personaje). Realmente no puede ver esto ilustrado también en la consola Vim, pero en la GUI notará que el cursor se convierte en una barra entre dos caracteres cuando ingresa al modo de inserción, en lugar de un bloque sobre un carácter cuando está en modo normal.
Entonces, lo que está viendo no es necesariamente el cursor que mueve un carácter hacia atrás cuando abandona el modo de inserción, sino simplemente moverse hacia un personaje. La única dirección segura de movimiento es hacia la izquierda (o hacia atrás). Por lo tanto, tiene más de una forma de ingresar al modo de inserción:
- "a" ingresa al modo de inserción con el cursor "entre" el carácter en el que estaba el cursor y el siguiente carácter a la derecha.
- "i" ingresa al modo de inserción con el cursor "entre" el carácter en el que estaba el cursor y el carácter anterior a la izquierda.
Algunas personas han hecho esfuerzos para suprimir este "movimiento" que no les gusta, pero que inevitablemente interfiere con los complementos y otros scripts de Vim que desean ejecutar en el futuro.
Mi sugerencia es acostumbrarse a usar los comandos "a" e "i" (y "A" e "I") en las circunstancias apropiadas.
Los comandos "o" y "O" también son útiles para aprender. Ver:
:help a
:help i
:help A
:help I
:help o
:help O
Editar: si aún está decidido a cambiar este comportamiento, pruebe este consejo: evite que el escape mueva el cursor un carácter hacia la izquierda