2017-02-16 39 views
0

我有一段代码,它有一个开口和相应的右括号。我需要在代码中复制代码并粘贴到其他地方。我需要多次执行此操作,因此我需要键盘命令才能启用录制。vim中的开始和结束括号之间的复制行

例如:

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

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

+0

** First **;键入'qaq'来擦除寄存器'a'的内容,然后将光标放在'abc {'行,然后通过'qaV%yq'创建宏,然后为每个块类型'@ a'选择块并转到任何并将其粘贴到'p' –

+0

可能更适合[vi.se]。 –

回答

0

您可以将此宏:/{^Myi{npjdd复制到注册表a。要执行此操作,请通过输入v进入可视模式,然后选择宏并使用:"ay将其复制到注册表a。然后将光标放在文档的第一个{之前,然后键入[email protected]。这里2可以被你想要重复宏的次数所取代。通过下面的代码使用该宏:

{ 
    code1 
} 
{ 

} 
{ 
    code2 
} 
{ 

} 

我得到:

{ 
    code1 
} 
{ 
    code1 
} 
{ 
    code2 
} 
{ 
    code2 
} 
+0

但我在代码1本身中有开口和闭合花括号。嵌套代码。 – OgANgA

0

扬克(Ÿ)内()括号({)应该为你做这个: yi{

如果您有圆括号:yi(

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

相关问题