Есть ли в 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 за указание на функцию, которую я уже использовал бы годами --- если бы я только знал об этом. И]} переходит в закрывающую скобку! Какое количество нажатий клавиш я
потратил
1
Хм. Я предполагаю, что это относится только к «текущему» родителю (?), Поэтому он не совсем выполняет то, что хотел OP. Есть ли вариант, который полностью раскрывается вверх или вниз?
evadeflow 02
43

Также вы можете нажать%, и он покажет вашу открытую или закрытую скобку

РусАлекс
источник
5
Вы должны быть в скобках, чтобы% работал. Это более полезно для сопоставления скобок, чем для навигации.
user31986,
1
@ user31986 Я думаю, что вы ошибаетесь: он работает для открытия и закрытия скобок. На самом деле, это работает не только для скобок, ([{}])но и для комментариев типа C/*...*/
Альф
Однако @ user31986 был по сути правильным: вопрос предлагает перейти изнутри некоторой структуры к некоторой родительской скобке, тогда как этот ответ касается перехода от одного символа (скобки, скобки или скобки) к подходящему. Это связано, но не является ответом на вопрос.
Эрик О Лебигот
6

Похоже, [[делает то, что вы хотите. И ][переходит к самой нижней скобе. (Большое спасибо @Benoit за то, что он подсказал мне, что это возможно ...)

уклонение
источник
3
'[[' & '] [' работают только тогда, когда открывающая фигурная скобка является первым символом в строке, а не когда это как в вопросе. "PARENT {"
user31986,