vim 中的内部和外部单词文本对象与计数结合时表现不同。给定文本(光标在单词内first
)
first second third fourth
两者y2iw
都会将第一个字放入寄存器中,y3iw
/y4iw
将前两个字放入寄存器中,等等。所以我至少需要y7iw
提取所有四个(内部)字。对于外部字,给出的计数与提取的字数相对应。
为什么iw
在这种情况下两个对象对应一个单词,我可以iw
表现得类似于吗aw
?
答案1
输入 5 个左右的空格并执行viw
:选择 5 个左右的空格,因为iw
它们也被视为\s+
单独的“对象”。
在您的示例中,您有 7 个iw
对象:
yiw
first
在未命名的寄存器中进行拉取。y2iw
first
在未命名的寄存器中抽取(带有尾随空格)。y3iw
在未命名的寄存器中抽取first second
(带有空格)。y4iw
在未命名的寄存器中抽取first second
(带有空格)。- 等等…
另一方面,aw
考虑这个词以及任意数量的后续空格作为“对象”。
在您的示例中,您有 4 个aw
对象:
yaw
first
在未命名的寄存器中抽取(带有尾随空格)。y2aw
first second
在未命名的寄存器中抽取(带有尾随空格)。y3aw
first second third
在未命名的寄存器中抽取(带有尾随空格)。y4aw
first second third fourth
在未命名的寄存器中进行拉取。
如果您想要iw
表现得像aw
只需使用aw
。