En vim, si entro y salgo del modo de edición sin hacer nada, el cursor termina un carácter a la izquierda. Y si entro y salgo del modo agregar, el cursor se mueve hacia adelante y luego hacia atrás.
¿Alguna forma de configurar vim para dejar el cursor solo en estos casos?
Idealmente, solo quiero ingresar siempre al modo agregar, pero sin mover el cursor cuando entro o salgo del modo.
(Actualmente, generalmente uso el modo de inserción porque no estropea mi posición de cuidado al ingresar. Es decir, excepto cuando necesito agregar al final de la línea, en cuyo caso juro por vim por comportarme de una manera tan arcaica , presione Esc e ingrese al modo de agregar).
i
oa
sin pensar en ello, y puede ser inclusos
,S
,ci"
, etc en lugar de la limitadai
ya
.Respuestas:
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:
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:
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
fuente
a
lugar dei
.<esc>
evitará que la mayoría de los complementos<esc>
funcionen correctamente, pero también continuará molestándote cuando uses otras características estándar que regresen al modo normal de la misma manera<esc>
. Aprender a usar la tecla correcta sobre la marcha es la solución que escala / funciona a largo plazo.Creo que por quilate te refieres a tu cursor y si estás usando "i" esto se insertará directamente donde está tu cursor, "a" (que creo que estás buscando) mueve el cursor un carácter a la derecha. Además, shift-i (I) irá al comienzo de la línea y shift-a (A) irá hasta el final de la línea.
Si he entendido mal su pregunta, me disculpo.
fuente
Dado que la reasignación
<ESC>
se considera 'arriesgada', simplemente la combino con uno de los enfoques clave de Evitar el escape y tengo lo siguiente en mi.vimrc
:Nota: Asegúrese de que no haya caracteres de espacio al final de la línea.
Simple, pero totalmente certificado como "funciona bien para mí", ya que eso es exactamente lo que tendría que escribir a mano.
Ya sea que lo use
a
oi
sigo teniendo el comportamiento de retroceso y me molesta mucho, la mayoría de las veces lo siguiente que quiero escribir esd$
eliminar al final de una línea, etc.fuente
Aquí está mi solución:
Es gracioso. Esta misma pregunta existe en los tres sitios: SO, SU, Unix + Linux.
fuente