Isso é algo que me incomoda há muito tempo, mas nunca cheguei a perguntar. Digamos que o texto em seu buffer fique assim:
Hello
World
Se eu colocar meu cursor em algum lugar na linha 2, e o fizer yk, meu cursor terminará na linha 1. Isso parece implicar um operador e um movimento também move o cursor. No entanto, se eu iniciar na linha 1 e yjcontinuar, meu cursor permanecerá no mesmo local. A mesma inconsistência acontece com muitas chaves.
Moves Doesn't move
gg G
h l
{ }
( )
T t
F f
? /
Então, o que há com esse comportamento? Isso é esperado e bem documentado? Existe um nome para isso? Pode ser substituído?
Em geral, parece que "o movimento para trás, o para a frente não", mas existe uma maneira de saber se um operador + movimento moverá o cursor ou não?
y
é um operador, não um comando.