【问题标题】:Is there a good way to copy text within parentheses in Vim?有没有一种在 Vim 中复制括号内文本的好方法?
【发布时间】:2011-08-19 06:26:11
【问题描述】:

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

function(foo(bar).baz)

第一次尝试:光标在一个括号上,然后是y%。这给了我一些额外的参数:

(foo(bar).baz)

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

(foo(bar).baz

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

【问题讨论】:

    标签: linux unix vim vi


    【解决方案1】:

    以下应该这样做

    拉动内块

    yi(

    【讨论】:

      【解决方案2】:

      使用text objects:

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

      您还可以使用" 在引号等内部工作。有关详细信息,请参阅链接,或在 Vim 中输入 :help text-objects

      【讨论】:

      • 您也可以使用yibyab。我发现括号键有点繁琐。
      【解决方案3】:

      稍微短的替代yi(yib。类似地,yiB等价于yi { - 拉出大括号内的内容。

      我个人通常首先执行 vib(视觉选择大括号内的文本)以确保选择了预期的文本,然后是 y

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

      【讨论】:

        猜你喜欢
        • 2014-04-17
        • 1970-01-01
        • 2021-01-27
        • 2019-12-27
        • 2011-03-09
        • 2010-11-16
        • 2015-11-03
        • 2021-09-08
        • 2012-04-30
        相关资源
        最近更新 更多