在 vim 中提取多个内部单词

jan*_*den 4 vim

当与计数组合时,vim 中的内部和外部单词文本对象的行为不同。给定文本(光标在单词内first

first second third fourth
Run Code Online (Sandbox Code Playgroud)

两者y2iw都会将第一个词放入寄存器,y3iw/y4iw前两个词等。所以我至少y7iw需要猛拉所有四个(内部)词。对于外部单词,给出的计数对应于抽出的单词数。

为什么iw在这种情况下两个对象对应一个单词,我可以iw表现得类似于aw?

rom*_*inl 7

键入 5 个左右的空格并执行viw: 选择 5 个左右的空格,因为它iw也被\s+视为一个单独的“对象”。

在您的示例中,您有 7 个iw对象:

  • yiwfirst在未命名的寄存器中猛拉。
  • y2iwfirst在未命名的寄存器中猛拉(带有尾随空格)。
  • y3iwfirst second在未命名的寄存器中猛拉(带空格)。
  • y4iwfirst second在未命名的寄存器中猛拉(带空格)。
  • 等等…

另一方面,aw将单词和任意数量的后续空格视为“对象”。

在您的示例中,您有 4 个aw对象:

  • yawfirst在未命名的寄存器中猛拉(带有尾随空格)。
  • y2awfirst second在未命名的寄存器中猛拉(带有尾随空格)。
  • y3awfirst second third在未命名的寄存器中猛拉(带有尾随空格)。
  • y4awfirst second third fourth在未命名的寄存器中猛拉。

如果你想iw表现得像aw使用aw.