Я знаю, что можно использовать Ctrl + ], чтобы перейти к определению в Vim, и это может работать совместно с ctags или Cscope. Я ищу более точную альтернативу ctags и Cscope при работе PHP. Иногда есть несколько возможных результатов или ложных срабатываний. Я только хочу перейти к фактическому определению того, что находится под курсором. В идеале это должно работать для переменных, функций, констант и классов.
Я не понимаю, почему это не может быть сделано путем анализа файлов. Наконец-то я преодолел практически все другие неприятности/недоразумения, которые у меня были с Vim, благодаря обучению и настройке, поэтому, если бы я смог это сделать, это было бы здорово.
Кроме того, согласны ли другие, что Cscope и ctags недостаточно точны для PHP или я что-то не так делаю?
UPDATE
Спустя 4 года я все еще использую Vim с PHP и все еще имею эту проблему. Я пробовал eclim, ctags, exubarant-ctags, универсальные ctags и cscope. Я попытался передать различные аргументы этим программам, чтобы заставить их генерировать лучшие теги. Опыт очень плох для всех этих вариантов.
Но теперь я понимаю проблему намного лучше. Там может быть ничего плохого с тегами, сгенерированными этими программами. Кажется, проблема в том, что когда вы нажимаете Ctrl + ] в Vim или Neovim, он просто ищет тег с таким именем. Он не смотрит на контекст файла, который вы редактируете, чтобы увидеть, какой тег с таким именем он должен использовать. Он даже не понимает, на каком языке вы редактируете, и ищет теги из кода на этом языке.
Есть ли способ сделать поиск vim по файлу тегов более разумным, основанным на контексте, а затем перейти к наиболее вероятному местоположению? Вы знаете, как то, что случилось бы в хорошей IDE?