【问题标题】:In Vim, paste over text between two parenthesis?在 Vim 中,粘贴两个括号之间的文本?
【发布时间】:2015-10-10 03:01:30
【问题描述】:

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

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 中的文本上?

【问题讨论】:

    标签: vim shortcut


    【解决方案1】:

    拉出第一对括号的内容:

    yib
    

    可视化选择第二对括号的内容并放入:

    vibp
    

    【讨论】:

    【解决方案2】:

    一种方法是 yi) 在 foo 的参数中,"_di)P 在 bar 的参数中。

    yi) 拉出括号内的文本

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

    唯一改变的是函数名,所以你也可以直接拉下该行并使用cw(更改单词)将 foo 更改为 bar。

    【讨论】:

    • @DirkHorsten 我添加了简短的解释。
    【解决方案3】:

    将光标移到foo 的第一个括号上,然后使用y% 拉出所有文本,直到匹配的括号。 (如果您更喜欢直观地查看您正在拖动的文本,也可以使用 v%y。)

    然后将光标放在bar 的第一个括号上,然后使用v%p。它选择文本直到匹配的括号然后粘贴在它上面。

    【讨论】:

      【解决方案4】:

      我使用vim-scripts/ReplaceWithRegister。

      照常复制 yi(

      用gri(粘贴​​p>

      【讨论】:

        【解决方案5】:

        使用它转到最后一个括号shift + 5。

        第一个括号按两次 5。

        【讨论】:

          猜你喜欢
          • 2015-07-27
          • 2012-07-08
          • 1970-01-01
          • 2013-06-11
          • 1970-01-01
          • 2012-08-17
          • 2014-07-20
          • 1970-01-01
          相关资源
          最近更新 更多