C'est quelque chose qui me dérange depuis longtemps, mais je ne me suis jamais posé la question. Supposons que le texte dans votre tampon ressemble à ceci:
Hello
World
Si je mets mon curseur quelque part dans la ligne 2, et que je le fais yk, mon curseur se terminera sur la ligne 1. Cela semble impliquer qu'un opérateur plus un mouvement déplace également le curseur. Cependant, si je commence sur la ligne 1 et que je le fais yj, mon curseur reste au même endroit. La même incohérence se produit avec de nombreuses clés.
Moves Doesn't move
gg G
h l
{ }
( )
T t
F f
? /
Alors, quel est ce comportement? Est-ce prévu et bien documenté? Y a-t-il un nom pour cela? Peut-il être annulé?
En général, il semble que "recule, pas en avant", mais existe-t-il un moyen de dire définitivement si un opérateur + mouvement déplacera ou non le curseur?
la source
y
est un opérateur, pas une commande.Réponses:
De
:h operator
Ce qui se passe, c'est que le curseur est déplacé au début de l'objet texte. L'activation du mode visuel le rendra plus apparent. Vous pouvez y penser que le texte est sélectionné avant d'être utilisé. Utilisez
vby
pour voir ce que je veux dire.la source