【问题标题】:How to select all LINES between parenthesises in VIM如何在VIM中选择括号之间的所有行
【发布时间】:2020-01-30 13:05:07
【问题描述】:

假设我有以下代码

aaa;
bbb;
ccc void () {
    xxx;
    yyy;
}
ddd;
eee;

现在假设我的光标在 yyy。我想突出显示括号 {} inclusive 括号所在的完整行之间的所有代码。这意味着高亮看起来像

选择前

选择后

va} 不是解决方案,因为它会产生这种情况

【问题讨论】:

  • 只需va{V 会这样做。
  • 您想将其添加为答案吗?我的回答太复杂了。你的是正确的。

标签: vim textselection


【解决方案1】:

实际上它应该是逐行选择。但是相应的“文本对象”强制一个字符型(所以va{Va{ 之间没有区别)。

但是,您可以随时按行进行选择。这样va{V就达到了预期的效果。

我不确定是否需要任何映射。但至少 ab 不应被触及,因为它通常代表括号(“()-block”)。

vnoremap aB aBV

现在vaB 将按行选择{}-块,而va{ 将执行“正常”{}-块选择。

【讨论】:

    【解决方案2】:
    nmap vab va{$o0
    

    打破它

    vab
    

    括号内的高亮显示,包括括号。光标在高亮结束处结束。

    $
    

    将光标移动到行尾

    o
    

    将光标移动到高亮块的另一端

    0
    

    将光标移动到行首

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 2013-08-11
      • 2016-04-09
      • 1970-01-01
      • 2017-07-05
      • 2016-10-16
      • 2011-12-09
      • 1970-01-01
      相关资源
      最近更新 更多