在Vim中有没有办法可以导航到下一个不同的缩进级别?
所以从这里到那里例如:
-> var a = 1;
var b = 2;
var func = function(){
-> return a + b;
}
答案 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()