Как перейти к следующему тегу в текущем буфере - vim? - PullRequest
0 голосов
/ 29 января 2019

Есть ли способ перейти к следующему тегу в текущем буфере?

sub A { 
  /* ... */
  [cursor]
}

sub B { /* ... */ }

Я знаю, что A и B являются тегами в текущем буфере.Есть ли способ перейти к следующему тегу после [cursor]?(в этом примере это будет B).

1 Ответ

0 голосов
/ 29 января 2019

Нет ничего встроенного, но вы можете реализовать это самостоятельно:

Вы можете получить список всех тегов в текущем буфере через

:let tags = filter(taglist('.*'), 'v:val.filename ==# expand("%:p")')

Затем экранировать имена тегов дляиспользовать в регулярном выражении и объединить их в качестве альтернативных ветвей поиска:

:let tagsExpr = '\V' . join(map(tags, 'escape(v:val.name, "\\")'), '\|')

Наконец выполнить поиск, чтобы найти следующий тег в текущем буфере:

:call search(tagsExpr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...