有没有一种很好的方法可以在Vim的括号内复制文本?

时间:2011-05-05 10:28:50

标签: linux unix vim vi

我想在以下代码中复制参数foo(bar).baz

function(foo(bar).baz)

首次尝试:在其中一个括号上的光标,然后是y%。这给了我参数加上一点额外的内容:

(foo(bar).baz)

第二次尝试:开始括号上的光标。设置标记ma,跳转到结束  %然后y`a复制回商标。这给了我:

(foo(bar).baz

在最后设置标记并以另一种方式设置标记给我完全相同。设置一个 f上的标记,然后输入mah%y`a 确实给了我想要的foo(bar).baz,但也许有更简洁的东西。有吗?

3 个答案:

答案 0 :(得分:25)

使用text objects

yi((或 ya(,如果你想包括括号)。

您还可以使用"在引号内工作等。请参阅链接了解详情,或在Vim中输入:help text-objects

答案 1 :(得分:6)

稍微 yi的替代品( yib 。同样 yiB 相当于 yi { - 将内容放入大括号内。

我个人通常先做 vib (直观地选择大括号内的文字),以确保选择了预期的文字,然后是 y

有关更多文本对象的优点,请参阅:help text-objects

答案 2 :(得分:2)

以下应该这样做

Yank Inner Block

易(

相关问题