Я использую cscope и ctags в редакторе vim для проекта c ++. Я создал ctags и cscope файлы, как показано ниже, в корне проекта.
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" > cscope.files
cscope -q -R -b -i cscope.files
Содержимое моего файла ~ / .vimrc указано ниже.
set tags+=./tags;/
filetype plugin on
cs add $CSCOPE_DB
Я добавил ниже строку в .bashrc
export CSCOPE_DB=/home/kadina/build/platform/component/platform/stb/cscope.out
И я скачал cscope_maps.vim из Интернета и поместил его в ~ / .vim / plugin /
Но когда я попытался найти определение функции с помощью ctrl +}, он перечисляет все определения функций с одинаковым именем вместо перехода к правильной функции.
Например, когда я попытался найти определение VZ_DIAGNOSTICS :: getInstance (), он не переходит к определению VZ_DIAGNOSTICS :: getInstance (), а перечисляет все определения функций с именем getInstance ().
Я столкнулся с той же проблемой, когда пытался найти, кто вызывает эту функцию, с помощью ctrl + \ + c. Он перечисляет функции, которые вызывают getInstance (), вместо перечисления функций, которые вызывают VZ_DIAGNOSTICS :: getInstance ().
Может кто-нибудь, пожалуйста, дайте мне знать, какие изменения мне нужно внести, чтобы правильно работать эти вещи?
Задача ещё не решена.
Других решений пока нет …