如何在vim中找到封闭块?

时间:2013-12-27 10:27:37

标签: vim

向后搜索{正在寻找兄弟障碍。

文件正确缩进,可能这可以通过从(^)之前的一个字符向上移动直到第一个非空白字符来完成。

还有其他办法吗?

例如:

if (some condition) {
  for (;;) {

  }
  some statements;
  here you're;
  while (some condition) {

  }
}

有没有办法从“你在这里”导航到if?

我正在考虑将光标放在“here you are”之前,并调用一个函数,该函数将向上移动光标,直到找到非空格字符。

3 个答案:

答案 0 :(得分:7)

按(光标在here you're行的任何字符)

[{

这正是您所寻找的。有关详细信息,请:h [{:h motion.txt

答案 1 :(得分:1)

是正确的方法。

答案 2 :(得分:1)

您的示例使用C代码,它使用大括号( {} )进行分组,因此以下建议并不直接有用。对于使用匹配模式进行分组的许多语言(例如shell脚本中的iffi,例如HTML中的<table></table>matchit.vim脚本,标准vim发行版的一部分,扩展并定义其他动作:

  • g%:向后循环
  • [%:封闭区块的开头(就像当前的问题一样)
  • ]%:封闭块的结尾
  • a% :(仅限可视模式)选择匹配的块

    :help matchit-install