VIM - поиск тегов из разных мест в проекте
Добрый день,
Обычно я работаю над относительно небольшими (менее 20 000 строк кода) проектами, которые все содержатся в одном каталоге, имеют свой собственный Makefile и с которым довольно легко работать.
VIM - мой любимый редактор, и когда я открываю проект, я обычно создаю список ctags через отображение наF10 ключ:
map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
Это позволяет мне перейти к определению переменной / struct / etc, наведя курсор на текст и нажавCTRL +], а также используя завершение кода с помощью раскрывающегося списка через OmniCppComplete.
Тем не менее, сейчас я работаю над немного большим проектом, который использует много структур. Более того, многие из этих структур имеют массивы других пользовательских структур в качестве членов, поэтому завершение кода является для меня очень полезным и важным инструментом прямо сейчас.
У меня есть два пути, которые включают в себя много.C
файлы и.h
файлы, и они могут меняться от машины к машине. Однако на каждой машине у нас есть переменная окружения.bashrc
файл, который указывает на них так:
SDK_SRC_PLUS_HEADERS=/public/sdk
THIRD_PARTY_SDK=/private/sdk
Я хотел бы иметь возможность, чтобы VIM автоматически ссылался на содержимое этих дополнительных путей, когда я пытаюсь выполнить завершение кода (через VIM 'встроенная функция OmniCppComplete), или для перехода к файлам в этих местах, когда я используюCTRL +] в VIM перейти к определению структуры, функции, переменной и т. д.
Итак, для обоих вышеперечисленных путей яcd
в них, и генерировать теги с помощьюctags -R
, Затем я изменил свой~/.vimrc
файл для включения дополнительных тегов путей, например так:
tags=./tags
tags+=$SDK_SRC_PLUS_HEADERS/tags
tags+=$THIRD_PARTY_SDK/tags
После, яcd
в мой проект в/home/user1/projects/test
, запустите VIM и нажмитеF10 в VIM индексировать его. Однако это не работает вообще. Фактически, это нарушает мою способность даже использовать теги только для самого проекта (то есть:CTRL +] сейчас ничего не делает).
Кто-нибудь есть какие-либо предложения о том, как я мог бы иметь исходные теги завершения кода и переходы к определениям, используя несколько исходных каталогов через переменные среды?
Спасибо всем заранее за ваше время и помощь!