在Vim中,在两个括号之间粘贴文本?

tom*_*ots 3 vim shortcut

我发现自己经常做的事情就是在两个括号之间划线,然后用另一对括号粘贴.例如:

foo(int a, int b, int c)
bar(int d, int e)
Run Code Online (Sandbox Code Playgroud)

foo(int a, int b, int c)
bar(int a, int b, int c)
Run Code Online (Sandbox Code Playgroud)

在Vim中有一个快速的方法从foo中抽取文本并将其粘贴到栏中的文本上吗?

rom*_*inl 10

Yank第一对括号的内容:

yib
Run Code Online (Sandbox Code Playgroud)

目视选择第二对括号的内容并放入:

vibp
Run Code Online (Sandbox Code Playgroud)


Jas*_*son 9

一种方法是yi)在foo的参数"_di)P内和bar的参数内.

yi) 将文本放在括号内

"_di)P使用空寄存器删除括号内的文本并粘贴文本,vi)p也可以工作并避免空寄存器

唯一改变的是函数名称,所以你也可以只是拉线并使用cw(更改单词)将foo更改为bar.

  • 你能解释一下为什么会这样吗? (2认同)
  • @DirkHorsten我添加了简短的解释. (2认同)