9

我正在寻找一种方法来移动到某种类型的下一个左括号或右括号,例如{or }。例子:

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

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

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

4

2 回答 2

5

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

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

:noremap ]] /}<CR>
于 2012-11-01T10:27:36.737 回答
3

稍微扩展 Ingo Karat 的信息性答案,这是一个自定义映射,它重新映射]]以开始搜索下一个{or}[[执行相同但相反的操作:

:noremap ]] /[{}]<CR>  " Find next { or }
:noremap [[ ?[{}]<CR>  " Find prev { or }
于 2015-07-07T18:50:39.163 回答