Есть ли в 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,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.