有没有一条vim命令可以将光标移动到父括号?

111

有没有一个vim命令可以将光标移动到父括号?

我有一个像这样的配置文件,并且我想直接跳转到父括号。有没有一个简单的移动命令来实现这个目的,或者有没有一种组合命令的方式可以做到我想要的?

PARENT{ // I want to move my cursor here

   CHILD { stuff... }
   CHILD { stuff... }
   CHILD { stuff... }

...

   CHILD { stuff... } // my cursor is on this line
   CHILD { GRANDCHILD { more stuff } }
   CHILD { stuff... }
}
3个回答

186

是的。在正常模式下输入[{即可实现这个功能,但这可能不适用于所有的编程语言。

更多有关移动命令的信息请参考:help [


8
谢谢指出这个特性,如果我早就知道它的话,我已经使用了好几年了。而 }] 代表闭合的括号!我浪费了那么多次按键... `:-} - evadeflow
1
嗯,我猜这只会到“当前”父级,所以它并不完全符合OP的要求。是否有一种变体可以完全弹出或下降? - evadeflow
谢谢!那对我很有帮助。 - Anuraag Tummanapally

58

同时,你可以按下 % 键,它将显示您的开或闭括号。


10
要让百分号 (%) 起作用,必须放在右括号上。它更适合于匹配括号而非导航。 - user31986
1
@user31986 我认为你错了:它适用于打开和关闭括号。实际上,它不仅适用于括号 ([{}]),还适用于 C 类型的注释 /*...*/ - Alf
@user31986基本上是正确的,尽管问题要求从某个结构的内部移动到某个父括号,而这个答案是关于从一个符号(括号、方括号或大括号)移动到匹配的符号。这是相关的,但不是问题的答案。 - Eric O. Lebigot

9

看起来[[是您想要的操作。而][则移动到最底部的大括号。(非常感谢@Benoit提示我可能有这个可能性…)


3
“[['和']['”只有在左括号是行首字符时才有效,而问题中的情况并非如此。“PARENT{” - user31986

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接