Я чувствую, что у меня есть отличная настройка для программирования на C ++ с использованием Vim, но я не могу найти способ сообщить Vim, YCM и Syntastic, где искать заголовки. Было бы очень неприятно, когда мне приходилось вручную устанавливать переменные пути включения для Vim, YCM и Syntastic каждый раз, когда я хочу работать над проектом, когда эта информация существует в Makefile. Существуют ли какие-либо автоматизированные решения для установки глобального пути включения?
Редактировать: он даже не найдет заголовки, если я установлю путь следующим образом «: set path =»., / Usr / include, include, .. / include, / home / steven / ovgl / include ,, «»
Ваши заголовки должны появиться в ваших файлах тегов (см. : h теги если вы не знаете об этом).
затем YouCompleteMe
может прочитать информацию о ваших заголовках из файла тегов, как описано в плагин часто задаваемые вопросы:
YCM не читает идентификаторы из моих файлов тегов
Во-первых, положить
let g:ycm_collect_identifiers_from_tags_files = 1
в вашем vimrc.Убедитесь, что вы используете Exuberant Ctags для создания ваших файлов тегов, так как
единственный поддерживаемый формат тегов — это формат Exuberant Ctags. Формат
из «простых» ctags НЕ поддерживается. Вывод ctags —version должен
список «Обильные Ctags».Ctags нужно вызывать с
--fields=+l
(это строчная буква L, а не
один) вариант, потому что YCM нуждается вlanguage:<lang>
поле в тегах
выход.ПРИМЕЧАНИЕ. Mac OS X поставляется с «обычными» ctags, установленными по умолчанию. заваривать установить
Ctags получит вам версию Exuberant Ctags.Также убедитесь, что опция Vim tags установлена правильно. Увидеть
:h 'tags'
для деталей. Если вы хотите увидеть, какие файлы тегов YCM будет читать для данного
буфер, запустить:echo tagfiles()
с соответствующим активным буфером. Обратите внимание, что
эта функция будет перечислять только те файлы тегов, которые уже существуют.
Я столкнулся с подобной проблемой. Мне нужно было это для использования с разработкой, используя llvm.
Я решил это, выполнив следующие шаги:
Ctags -R --fields=+l *
в вашем проекте / кодовой базе.let g:ycm_collect_identifiers_from_tags_files = 1
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
let g:ycm_global_ycm_extra_conf = '/home/<user>/ycm_extra_conf.py'
bash
Примечание: вы должны запустить vim в каталоге с тегами, присутствующими в нем. Или вам может понадобиться явно указать каталог, в котором присутствуют теги.
Вы должны искать YCM-генератор. Это скрипт, который генерирует ycm_extra_conf.py, запустив make
и ищет все используемые флаги. Вы запускаете его один раз для проекта и запускаете только после изменения make-файла.