Vim 中有没有一种方法可以导航到下一个不同的缩进级别?
因此,例如从这里到那里:
-> var a = 1;
var b = 2;
var func = function(){
-> return a + b;
}
Vim 中有没有一种方法可以导航到下一个不同的缩进级别?
因此,例如从这里到那里:
-> var a = 1;
var b = 2;
var func = function(){
-> return a + b;
}
这应该适用于由空格(而不是制表符)组成的缩进:
call search('^ \{0,'.eval(indent(".")-1).'}\S\|^ \{'.eval(indent(".")+1).',}\S')
这由两个正则表达式组成:
^ \{0,'.eval(indent(".")-1).'}\S
使用与前面空格的\{n,m}
from n
to匹配的结构匹配较小的缩进。m
^ \{'.eval(indent(".")+1).',}\S'
匹配更大的缩进,使用\{n,}
至少匹配n
前面空格的结构。正则表达式夹在中间^
并且\S
仅应用于行上的前导空格。然后它们由\|
('OR') 运算符连接。
当然,search()
为方便起见,可以将呼叫映射到组合键。
编辑
Chris Johnsen 指出调用 toeval()
是多余的,所以命令可以简化为:
call search('^ \{0,'.(indent(".")-1).'}\S\|^ \{'.(indent(".")+1).',}\S')