2012-11-01 72 views
7

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

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

比方说,我的光标位于SomeFunction()的“S”,我想跳到下一},for循环的,即结束支架。

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

回答

3

看看:help motion.txt,它包含了所有的各种选择。

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

:noremap ]] /}<CR> 
+0

的问题'/} '是,我使用所有这三个按键的小指,所以感觉很尴尬。 我熟悉']]'等等,但我想要下一个,不管它是否在第一列。 感谢您对[m]的建议,这听起来很有希望,不幸的是它不适用于VsVim,所以它似乎是唯一的方法。 – tmlye

+0

如果您想要VSVim功能,为什么要问Vim功能? – romainl

+0

因为我在家中使用Vim并且在工作中使用VSVim。 – tmlye

1

扩展英戈卡拉特的翔实的答案咯,这里的重新映射]]开始为下一个{}[[做搜索的自定义映射相同的,但相反:

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