Vim - 导航到下一个不同的缩进

时间:2013-01-15 22:33:31

标签: vim

在Vim中有没有办法可以导航到下一个不同的缩进级别?

所以从这里到那里例如:

-> var a = 1;
   var b = 2;
   var func = function(){
->     return a + b;
   }

1 个答案:

答案 0 :(得分:4)

这适用于由空格(而非制表符)组成的缩进:

call search('^ \{0,'.eval(indent(".")-1).'}\S\|^ \{'.eval(indent(".")+1).',}\S')

这由两个正则表达式组成:

  • ^ \{0,'.eval(indent(".")-1).'}\S匹配较小的缩进,使用前一空格的\{n,m}n的{​​{1}}构造匹配。
  • m匹配较大的缩进,使用与前一空格至少^ \{'.eval(indent(".")+1).',}\S'匹配的\{n,}构造。

正则表达式夹在n^之间,仅适用于该行的前导空格。然后,它们由\S(' OR')运算符加入。

当然,\|调用可以映射到键组合以方便使用。

修改

克里斯·约翰森指出,对search()的调用是多余的,所以命令可以简化为:

eval()