exuberant ctags с C не дает перенаправления для правильного определения функции

Я использовал ctags с C в старом проекте, в основном в Vim. ctags работал нормально [отлично перенаправляя]

Теперь база кода сильно изменилась, я запустил команду: ctags -Rтеперь, когда я делаю Ctrl + ]Я не отношусь к определению функции / макроса как раньше, иногда это приводит меня к правильной строке, но в основном это приводит меня к некоторым строкам выше / ниже фактического определения. Кто-нибудь может помочь?

1 ответ

Похоже, у вас есть файл тегов для каждого каталога в вашем проекте. ctags -R изменяет только файл тегов в текущем каталоге. Он не меняет все файлы тегов рекурсивно. Вот почему, когда вы делаете <C+]> ты прыгаешь к месту, близкому к реальному определению.

Чтобы это исправить, у вас должен быть только один файл тегов, и он должен находиться в корне вашего проекта. Тогда в ваш vimrc добавьте set tags=./tags;/, Это позволяет vim искать файл тегов, начиная с текущей директории вверх по дереву, пока не найдет ее. (остановка в корневом каталоге)

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