2012-11-01 8 views
7

Szukam sposobu przejścia do następnego nawiasu otwartego lub zamykającego określonego typu, np. { lub }. Przykład:Przejdź do następnego nawiasu otwierającego lub zamykającego w VIM

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

Powiedzmy mój kursor znajduje się na „S” w SomeFunction() i chcę, aby przejść do następnego }, czyli wspornik koniec pętli for.

Co to jest skuteczny sposób? Jedynym sposobem, jaki mogę wymyślić jest użycie /}[ENTER], ale zastanawiam się, czy jest prostszy sposób.

Odpowiedz

3

Spójrz na :help motion.txt, zawiera wszystkie różne alternatywy.

Dla { w pierwszej kolumnie jest ]]. Dla niezrównanych, ]}. W wielu językach { reprezentuje początek metody, a następnie można użyć ]m. Ale generalnie nie widzę problemu z Twoją sugestią: /}<CR>. Jeśli używasz, że często, zawsze można określić niestandardową mapowanie dla niego:

:noremap ]] /}<CR> 
+0

problem z '/'} jest to, że używam mały palec dla wszystkich trzech z tych klawiszy, więc czuje się niezręcznie. Jestem zaznajomiony z ']]' itp., Ale chcę następny, niezależnie od tego, czy jest w pierwszej kolumnie, czy nie. Dziękuję za sugestię] m, brzmi obiecująco, niestety nie działa w VsVim, więc wygląda na to, że mapowanie jest jedynym sposobem. – tmlye

+0

Dlaczego pytasz o funkcję Vima, jeśli chcesz korzystać z funkcji VSVim? – romainl

+0

Ponieważ używam Vima w domu i VSVim w pracy. – tmlye

1

Rozszerzanie odpowiedź informacyjny Ingo karat nieznacznie, oto mapowanie niestandardowych że remaps ]] aby rozpocząć wyszukiwanie następnego { lub } i [[ robi to samo, ale w odwrotnej:

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