2015-07-20 83 views
2

我发现自己经常做的事情是在两个括号之间拖动文本并粘贴到另一对括号上。例如:在Vim中,在两个括号之间粘贴文本?

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的一个快速的方法来抽出从富文本,并将其粘贴在上栏中的文本?

回答

7

一种方法是yi) Foo的参数内, "_di)P在酒吧的论点。

yi)猛拉,括号内的文字

"_di)P使用空注册删除括号和粘贴文本,vi)p也适用中的文本,避免了空注册

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

+2

你能解释一下为什么这是可行的吗? –

+2

@DirkHorsten我加了一个简短的解释。 – Jason

4

光标在foo的第一个paren上,然后使用y%将所有文本都拉到匹配paren。 (您也可以使用v%y,如果你喜欢直观地看到你猛拉文本。)

然后光标放在bar第一个括号,然后使用。它选择文本直到匹配paren粘贴它。

9

猛拉第一对括号中的内容:

yib 

直观地选择第二对括号的内容和提出:

vibp 
+0

有关此主题的[Vimcast](http://vimcasts.org/)集:[从视觉模式粘贴](http://vimcasts.org/episodes/pasting-from-visual-mode/) –