2012-11-01 121 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 }