【问题标题】:Copy lines between from opening and closing brackets in vim在vim中从左括号和右括号之间复制行
【发布时间】:2017-07-05 00:49:35
【问题描述】:

我有一段代码,它有一个左括号和相应的右括号。我需要复制大括号内的代码并将其粘贴到其他地方。我需要多次这样做,所以我需要键盘命令才能启用录制。

例如:

abc{  //beginning of code
    somelines
     {
       some lines
     }
    abc
    {
      some lines
    }
}// end of code

我需要将abc { 复制到}//end of the code。行号可能会改变,里面也会有子块。如果我们双击大括号使用鼠标,它将选择到块的末尾。但我需要 avkeyboard 命令才能用作宏。

【问题讨论】:

  • 第一;键入qaq 擦除寄存器a 的内容,然后将光标放在abc { 行上并在每个块类型@a 之后通过qaV%yq 创建宏以选择块并转到任意行并粘贴它与p
  • 可能更适合Vi and Vim

标签: vim copy


【解决方案1】:

您可以将此宏:/{^Myi{npjdd 复制到注册表a。为此,请键入v 进入可视模式,然后选择宏并将其复制到注册表a,使用:"ay。然后将光标放在文档的第一个{ 之前并键入2@a。这里2 可以替换为您希望宏重复的次数。通过在以下代码中使用此宏:

{ 代码1 } { } { 代码2 } { }

我明白了:

{ 代码1 } { 代码1 } { 代码2 } { 代码2 }

【讨论】:

  • 但是我在 code1 本身内部有大括号和大括号。嵌套代码。
【解决方案2】:

Yank( y ) inside( i ) 括号( { ) 应该为您执行此操作:yi{

如果你有圆括号:yi(

如果您想将其复制到 GUI 剪贴板,只需使用 + 注册表:"+yi{

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2019-10-12
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多