Когда я :tselect pool , там отображаются совпадения, как и ожидалось:

  # pri kind tag               file
  1 F C m    poll              pika/adapters/select_connection.py
               line:238 class:IOLoop
               def poll(self):
  2 F C m    poll              pika/adapters/select_connection.py
               line:544 class:_PollerBase
               def poll(self):
  3 F C m    poll              pika/adapters/select_connection.py
               line:682 class:SelectPoller
               def poll(self):

но какой бы номер я ни выбрал, vim всегда переходит к строке первого выбора, в данном случае к строке 238. Я пробовал :tn/:tp , номер тега будет меняться, но все равно на той же строке.

соответствующие строки в файле tags :

poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:238        class:IOLoop
poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:544        class:_PollerBase
poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:682        class:SelectPoller

мой ~/.ctag:

--recurse
--links=no
--fields=+n

Версия ctags - Exuberant Ctags 5.8 .

1 ответ1

1

Согласно другому ответу на SO, для работы с vim я должен использовать ctags -n или --excmd=number , после добавления этой опции в ~/.ctags , теперь она работает нормально.

--excmd=number force ctags для поиска использует только номер строки в файле тегов, даже если есть line: column, но, видимо, vim не может его распознать.

вот так выглядят tags :

poll    pika/adapters/select_connection.py      238;"   m       line:238        class:IOLoop
poll    pika/adapters/select_connection.py      544;"   m       line:544        class:_PollerBase
poll    pika/adapters/select_connection.py      682;"   m       line:682        class:SelectPoller

Основным отличием является третий столбец, который vim называется {tagaddress}:

{tagaddress} Команда Ex, которая устанавливает курсор на тег. Это может быть любая команда Ex, хотя существуют ограничения (см. | Tag-security |). Posix допускает только номера строк и команды поиска, которые в основном используются.

Я считаю, что это причина, почему шаблон не работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .