为什么“操作员” +“动作”的行为不一致?


17

这是困扰我很长时间的事情,但是我从来没有四处询问。说缓冲区中的文本如下所示:

Hello
World

如果将光标放在第2行的某个位置,然后执行do yk,则光标将在第1行结束。这似乎暗示着一个操作符加上一个动作也会移动光标。但是,如果我从第1行开始并执行yj,则光标会停留在同一位置。许多密钥也会发生相同的不一致。

Moves   Doesn't move
gg      G
h       l
{       }
(       )
T       t
F       f
?       /

那么这种行为是什么呢?这是预期的并且有据可查吗?有这个名字吗?可以覆盖吗?

通常,似乎“向后移动,不向前移动”,但是有没有办法确定操作员+动作是否会移动光标?


2
y是运算符,而不是命令。
romainl '16

Answers:


16

:h operator

应用运算符后,光标通常留在所操作文本的开头。例如,“ yfe”不会移动光标,但是“ yFe”会将光标向左移动到开始拉动的“ e”。

发生的情况是光标正在移动到文本对象的开头。启用可视模式将使其更加明显。您可以认为它是在操作文本之前被选中的。使用vby到明白我的意思。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.