significado - ¿Por qué Vim coloca el carácter de un personaje fuera de línea con $(final de línea)?
vim store (4)
El cursor se coloca completamente en el extremo después de presionar $ . No puede ir más allá del último carácter, ya que implicaría agregar un nuevo carácter a la línea.
Observe una línea en una instancia de Vim:
Ahora golpeo $:
¿Por qué mi cursor no llega hasta el final? Una vez que intento insertar, el texto se inserta antes del último carácter! Incluso si trato de moverme a la derecha nuevamente mientras estoy en modo normal, obtengo el timbre. Curiosamente, cuando estoy en modo de edición, puedo moverme al final de la línea con la tecla de flecha derecha.
¿Alguien sabe por qué Vim hace esto? En 7.3 por cierto. Gracias por la ayuda.
El cursor no puede estar entre dos caracteres, siempre está en un carácter.
Si presiona $
luego x
, eliminará correctamente el último carácter imprimible de la línea actual.
Lo que está observando es el hecho de que al usar i
, siempre está insertando su texto antes del carácter seleccionado. Si desea insertar después del carácter seleccionado, debe utilizar a
o mejor A
como ya se ha mencionado.
En otras palabras:
i
significa "insertar antes del carácter debajo del cursor".
a
significa "insertar después del carácter debajo del cursor".
mnemotécnica para a
: a para "añadir".
Presionar $ mientras se encuentra en el modo de comando hace que el cursor se mueva al final de la línea, resaltando efectivamente el último carácter. Presione i aquí para insertar antes del último carácter, o a para agregar a la línea. Es un poco ambiguo aquí, porque está utilizando un carácter de canalización como un cursor en lugar de un cursor de bloque rectangular. Eche un vistazo a ": help termcap-cursor-shape" si desea cambiar eso.
Si el objetivo es agregar al final de la línea, A saltará al final de la línea y entrará en el modo de inserción con una sola pulsación de tecla.
Usa a para añadir un carácter después del actual.
O, para ir al final de la línea y adjuntar en 1 paso, use mayúscula A
Es decir, turno a .
De manera similar, desplace - I para insertar al principio de la línea sin tener que presionar primero ^ .