Как перейти к правильному определению метода, когда совпадают несколько тегов?

Я попытался сгенерировать файл тега с помощью:

ctags -R * −−java−kinds=+mc

Но когда найдено более одного совпадения, ctrl+] всегда переходит к неверному определению метода в другом классе.

Я знаю, что могу использовать:tjump, чтобы выбрать, если есть несколько вариантов. Но я надеюсь, что есть лучшее решение (если есть)?

2 ответа

В таких случаях я бы рекомендовал использовать g CTRL-] вместо CTRL-], подобно :tjump, это перечислит все доступные совпадения тегов и запросит вас вместо перехода к первому.

Чтобы сделать это по умолчанию, вы можете использовать это отображение:

:nnoremap <C-]> g<C-]>

Ни ctags, ни vim не могут угадать, что такое правильный тег, и кроме этого нет пути :tjump или же :tselect, :tag имеет механизм приоритетов, о котором вы можете прочитать в документе, но он все еще довольно глуп.

Cscope немного умнее, но не намного.

Учитывая эту ситуацию, перечисление возможных целей для вас является единственным разумным и практичным подходом.

Другие вопросы по тегам