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

时间:2015-07-20 20:32:40

标签: vim shortcut

我发现自己经常做的事情是将两个括号之间的文本拉到另一对括号上。例如:

foo(int a, int b, int c)
bar(int d, int e)

变为

foo(int a, int b, int c)
bar(int a, int b, int c)

Vim中是否有快速方法从foo中取出文本并将其粘贴到栏中的文本上?

4 个答案:

答案 0 :(得分:9)

Yank第一对括号的内容:

yib

直观地选择第二对括号的内容并放置:

vibp

答案 1 :(得分:8)

在foo的参数中有yi),在bar的参数中有"_di)P

yi)将文本放在括号内

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

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

答案 2 :(得分:4)

将光标移到foo的第一个位置,然后使用y%将所有文本拉到匹配的paren之前。 (如果您希望直观地看到您正在阅读的文字,也可以使用v%y。)

然后将光标移到bar的第一个位置,然后使用v%p。它选择文本直到匹配的paren然后粘贴它。

答案 3 :(得分:0)

我使用vim-scripts/ReplaceWithRegister

像往常一样复制 yi(

粘贴gri(