Vim 中的文本对象(在文本对象之间移动)

text object in Vim (moving between text object)

我有两个字:

word1  word2

我愿意:

c2iw   

用于改变两个整个世界但它不起作用并且选择相同:

v2iw

有效,但你需要计算iw命令,而不是单词。如果光标在 space 上,viw 选择 spaces 在单词之间。在您的情况下,第一个 iw 将引用第一个单词,第二个单词将引用单词之间的 space(s),第三个是第二个字。因此,你需要 c3iwv3iw。不能因为过于一致而责怪 Vim。 :)

iw 覆盖了 word1word2 但它也覆盖了两者之间的空白:

word1 word2
-----          iw
------         2iw
-----------    3iw

正确的命令是:

<operator>3iw

或:

3<operator>iw

首先您需要跳转到下一个文本对象。 您可以使用 e.

e

下一步是更改接下来的两个词。

c2e

更改接下来的两个文本对象。 选择它们:

v2e

正如其他人指出的那样,iw 议案也将 space 视为文字。所以,如果你不想被那些 space 打扰并以你所知道的 单词为目标 ,请使用 aw 动作。

所以,与其这样做:

c3iw
v3iw

只需这样做:

c2aw
v2aw

那么Vim就不会把space这个字符当成一个词