Как перейти к правильному определению метода, когда совпадают несколько тегов?
Я попытался сгенерировать файл тега с помощью:
ctags -R * −−java−kinds=+mc
Но когда найдено более одного совпадения, ctrl+] всегда переходит к неверному определению метода в другом классе.
Я знаю, что могу использовать:tjump, чтобы выбрать, если есть несколько вариантов. Но я надеюсь, что есть лучшее решение (если есть)?
2 ответа
В таких случаях я бы рекомендовал использовать g CTRL-]
вместо CTRL-]
, подобно :tjump
, это перечислит все доступные совпадения тегов и запросит вас вместо перехода к первому.
Чтобы сделать это по умолчанию, вы можете использовать это отображение:
:nnoremap <C-]> g<C-]>
Ни ctags, ни vim не могут угадать, что такое правильный тег, и кроме этого нет пути :tjump
или же :tselect
, :tag
имеет механизм приоритетов, о котором вы можете прочитать в документе, но он все еще довольно глуп.
Cscope немного умнее, но не намного.
Учитывая эту ситуацию, перечисление возможных целей для вас является единственным разумным и практичным подходом.