Чи існує команда vim для переміщення курсора до батьківської дужки?


85

Чи існує команда vim для переміщення курсора до батьківської дужки?

У мене є файл конфігурації, подібний до цього, і я хочу перейти безпосередньо до батьківської дужки. Чи є для цього проста команда руху, чи є спосіб поєднати команди, щоб робити те, що я хочу?

PARENT{ // I want to move my cursor here

   CHILD { stuff... }
   CHILD { stuff... }
   CHILD { stuff... }

...

   CHILD { stuff... } // my cursor is on this line
   CHILD { GRANDCHILD { more stuff } }
   CHILD { stuff... }
}

Відповіді:


131

Так. Робіть [{для цього звичайний режим. Однак це може працювати не для всіх мов.

Багато команд переміщення доступні за адресою :help [.


7
+1 за вказівку на функцію, якою я вже користувався роками --- якби тільки знав про це. І]} переходить до фінальної дужки! Яку купу натискань клавіш я даремно витратив ... `: -}
evadeflow

1
Хм Я думаю, це стосується лише "поточного" батька, хоча (?), Тому він не робить точно того, що бажав ОП. Чи існує варіант, який спливає вгору або вниз?
evadeflow

43

Також ви можете натиснути%, і він покаже вашу відкриту або закриту дужку


5
Ви повинні бути в тісній дужці, щоб% працював. Це корисніше для узгодження дужок, а не для навігації.
user31986

1
@ user31986 Я думаю, ви там помиляєтесь: це працює для відкривання та закриття дужок. Насправді це працює не лише для дужок, ([{}])але і для коментарів типу С/*...*/
Альф

@ user31986, однак, був по суті правильним: питання просить перейти з внутрішньої частини якоїсь структури до якоїсь батьківської дужки, тоді як ця відповідь стосується переходу від одного символу (дужки, дужки або дужки) до відповідного. Це пов’язано, але не є відповіддю на запитання.
Eric O Lebigot

6

Схоже, [[роби те, що хочеш. І ][рухається до самої нижньої дужки. (З великою подякою @Benoit за те, що я натякнув мене на те, що це можливо ...)


3
'[[' & '] [' працює лише тоді, коли відкриваюча дужка є першим символом на рядку, а не тоді, коли це так, як у питанні. "PARENT {"
користувач31986
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.