我经常会做的一件事情是将两个括号之间的文本复制,然后粘贴到另一组括号中。例如:
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 中复制文本并将其粘贴到 bar 中的文本上?
取出第一对括号中的内容:
yib
选中第二对括号内的内容并放置:
vibp
一种方法是在foo的参数中使用yi)
,在bar的参数中使用"_di)P
。
yi)
复制圆括号内的文本
"_di)P
使用空寄存器删除圆括号内的文本,并粘贴该文本,vi)p
也可行且避免使用空寄存器
唯一的变化是函数名,因此您也可以复制该行并使用cw
(更改单词)将foo更改为bar。
将光标移到foo
的第一个括号上,然后使用y%
命令复制直到匹配的括号处所有文本。如果你更喜欢在可视化界面中看到复制的文本,也可以使用v%y
。
然后将光标移到bar
的第一个括号上,使用v%p
命令。它会选择直到匹配的括号处的文本并将其粘贴覆盖。
shift + 5
快捷键可以跳转到最后一个括号。