移动到VIM中同一列中具有非空格字符的下一行?

时间:2014-01-02 12:12:37

标签: vim

由于源代码通常是缩进的,如果我可以移动到同一列中具有非空白字符的下一行/上一行,它将有助于快速导航源代码。使用下面的代码片段作为示例,并将光标放在最后}上,有没有办法将光标导航到i,它开始if

if (condition) {
    //  some code
}

4 个答案:

答案 0 :(得分:6)

要搜索相同的屏幕列,您可以使用特殊的/\%v原子;可以使用virtcol('.')查询当前列。在该位置断言非空格(\S),并为其触发b ackwards search()

:call search('\%' . virtcol('.') . 'v\S', 'bW')

您可以轻松将其转换为普通模式映射。

答案 1 :(得分:2)

我现在已在JumpToVerticalOccurrence plugin中实施此动议;默认情况下映射到]| / [|。还有其他相关映射,例如]V{char}映射,其工作方式与f类似,但垂直方向。

因此,如果您不介意安装插件(以及依赖项),这会更强大且更实用(它也支持[count])。

答案 2 :(得分:1)

不完全符合您的要求,但如果您从}开始并点击%,则光标会移至匹配的{

答案 3 :(得分:1)

如果您的代码具有已定义的缩进系统,则jeetsukumaran/vim-indentwise对于跨缩进的块的相对,绝对或块作用域运动非常有效。