exuberant ctags с C не дает перенаправления для правильного определения функции
Я использовал ctags с C в старом проекте, в основном в Vim. ctags работал нормально [отлично перенаправляя]
Теперь база кода сильно изменилась, я запустил команду: ctags -R
теперь, когда я делаю Ctrl + ]
Я не отношусь к определению функции / макроса как раньше, иногда это приводит меня к правильной строке, но в основном это приводит меня к некоторым строкам выше / ниже фактического определения. Кто-нибудь может помочь?
1 ответ
Похоже, у вас есть файл тегов для каждого каталога в вашем проекте. ctags -R
изменяет только файл тегов в текущем каталоге. Он не меняет все файлы тегов рекурсивно. Вот почему, когда вы делаете <C+]>
ты прыгаешь к месту, близкому к реальному определению.
Чтобы это исправить, у вас должен быть только один файл тегов, и он должен находиться в корне вашего проекта. Тогда в ваш vimrc добавьте set tags=./tags;/
, Это позволяет vim искать файл тегов, начиная с текущей директории вверх по дереву, пока не найдет ее. (остановка в корневом каталоге)