Esto es algo que me ha molestado durante mucho tiempo, pero nunca he podido preguntar. Digamos que el texto en su búfer se ve así:
Hello
World
Si coloco mi cursor en algún lugar de la línea 2 y lo hago yk, mi cursor terminará en la línea 1. Esto parece implicar que un operador más un movimiento también mueve el cursor. Sin embargo, si empiezo en la línea 1 y lo hago yj, mi cursor permanece en el mismo lugar. La misma inconsistencia ocurre con muchas teclas.
Moves Doesn't move
gg G
h l
{ }
( )
T t
F f
? /
Entonces, ¿qué pasa con este comportamiento? ¿Es esto esperado y bien documentado? ¿Hay un nombre para esto? ¿Se puede anular?
En general, parece que "se mueve hacia atrás, hacia adelante no", pero ¿hay alguna manera de saber definitivamente si un operador + movimiento moverá el cursor o no?
cursor-motions
DJMcMayhem
fuente
fuente
y
es un operador, no un comando.Respuestas:
Desde
:h operator
Lo que sucede es que el cursor se mueve al comienzo del objeto de texto. Habilitar el modo visual lo hará más evidente. Puede considerarlo como el texto que se está seleccionando antes de que se opere. Use
vby
para ver a qué me refiero.fuente