移动到下一行,该行在VIM的同一列中具有非空白字符?
由于源代码通常是缩进的,如果我可以移动到下一行/上一行,这将有助于快速导航源代码,该行在同一列中具有非空的白色字符。以下面的代码段为例,将光标放在最后一个移动到下一行,该行在VIM的同一列中具有非空白字符?,vim,Vim,由于源代码通常是缩进的,如果我可以移动到下一行/上一行,这将有助于快速导航源代码,该行在同一列中具有非空的白色字符。以下面的代码段为例,将光标放在最后一个}上,是否有方法将光标导航到以if开头的i if (condition) { // some code } 这不完全是您想要的,但是如果您从}开始并点击%,光标将移动到匹配的{以搜索相同的屏幕列,您可以使用特殊的/\%v原子;可以使用virtcol(')查询当前列。。声明一个非空白(\S)在该位置,并触发abackwardssear
}
上,是否有方法将光标导航到以if
开头的i
if (condition) {
// some code
}
这不完全是您想要的,但是如果您从
}
开始并点击%
,光标将移动到匹配的{
以搜索相同的屏幕列,您可以使用特殊的/\%v
原子;可以使用virtcol(')查询当前列。
。声明一个非空白(\S
)在该位置,并触发ab
ackwardssearch()
:
:call search('\%' . virtcol('.') . 'v\S', 'bW')
您可以轻松地将其转换为正常模式映射。我现在已经在我的中实现了此运动;默认情况下映射为
][/code>/[
。还有其他相关映射,如]V{char}
映射,其工作原理与f
类似,但垂直
因此,如果您不介意安装插件(加上依赖项),这将更加健壮和实用(它还支持[count]
).如果您的代码有一个定义的缩进系统,则可以在缩进块之间进行相对、绝对或块范围的移动。谢谢。是的,使用%
可以解决这个问题,但是除了额外的按键之外,它仅限于块代码。如果有一个通用的快捷方式,那就太好了。b但是它将被限制为块代码
你的意思是什么?这个答案符合你的要求,正如你在问题中所描述的(用那个例子)。是的,%0
或%^
两个按键。@Kent,我的意思是可能没有“{”和“}”要阻止代码,代码仍然是缩进的。另请参见。相关:在Vi SEDo,您认为将它们映射到
和
,这更容易点击和理解。您可以重新映射它们;对我个人来说,
对于这样很少使用(我)的运动来说太有价值了。谢谢。映射是否用于Control-k::map:call search('\%'.virtcol('.).v\S',bW')
和Control-j::映射:调用搜索('\%'.virtcol('.')。'v\S',wW')
。