VIM: перейти к началу условия IF - PullRequest
1 голос
/ 14 июля 2020

Допустим, мой код

if (...) { //How can VIM reach to this IF statement
     if (...) {
     }
     if (...) {
     }
     // { { { {
     //10000 more lines...

     | My Cursor is here now. I want to go the "parent" IF statement

     //10000 more lines
}

Я пробовал использовать «[{», но это не сработало бы, если есть комментарии с «{», которые его прерывают.

1 Ответ

1 голос
/ 14 июля 2020

Подключаемый модуль matchit может здесь помочь, он обеспечивает более точные сопоставления, позволяющие распознавать и пропускать совпадения внутри комментариев.

Подключаемый модуль matchit фактически распространяется с Vim, начиная с Vim 8.0, но вам нужно включить его явно. Подробнее см. :help matchit-install. Но, вкратце, просто добавьте эту строку в свой файл vimr c:

packadd! matchit

После активации плагина вы можете использовать движение [% для перемещения в { на верхнем уровне «если». (Обратите внимание, что "matchit" использует отдельное движение [%, оно не отменяет [{, которое продолжает перемещаться к { внутри комментария.)

Обратите внимание, что вам необходимо иметь filetype для правильной работы этой функции включены обнаружение и выделение синтаксиса, поскольку "matchit" фактически использует группы подсветки синтаксиса для определения того, находится ли совпадение внутри комментария.

...