移至VIM中的下一个打开或关闭括号

时间:2012-11-01 10:03:16

标签: vim editor

我正在寻找一种方法来移动到某种类型的下一个打开或关闭括号,例如{}。例如:

if(true)
{
   for(int i = 0; i < 10; i++)
   {
       SomeFunction();
       SomeOtherFuntion();
   }
}

假设我的光标在SomeFunction()的'S'上,我想跳转到下一个},即for循环的结束括号。

有效的方法是什么?我能想到的唯一方法是使用/}[ENTER],但我想知道是否有更简单的方法。

2 个答案:

答案 0 :(得分:5)

查看:help motion.txt,它包含所有各种替代方案。

对于第一列中的{,有]]。对于无与伦比的,]}。在许多语言中,{表示方法的开头,然后可以使用]m。但总的来说,我认为你对/}<CR>的建议没有问题。如果经常使用它,您可以随时为它定义自定义映射:

:noremap ]] /}<CR>

答案 1 :(得分:3)

稍微扩展Ingo Karat的内容丰富的答案,这是一个自定义映射,重新映射]]以开始搜索下一个{}[[同样但在反向:

:noremap ]] /[{}]<CR>  " Find next { or }
:noremap [[ ?[{}]<CR>  " Find prev { or }