Vim, C ++, YCM и Syntastic включают проблемы с путями

Я чувствую, что у меня есть отличная настройка для программирования на C ++ с использованием Vim, но я не могу найти способ сообщить Vim, YCM и Syntastic, где искать заголовки. Было бы очень неприятно, когда мне приходилось вручную устанавливать переменные пути включения для Vim, YCM и Syntastic каждый раз, когда я хочу работать над проектом, когда эта информация существует в Makefile. Существуют ли какие-либо автоматизированные решения для установки глобального пути включения?

Редактировать: он даже не найдет заголовки, если я установлю путь следующим образом «: set path =»., / Usr / include, include, .. / include, / home / steven / ovgl / include ,, «»

11

Решение

Ваши заголовки должны появиться в ваших файлах тегов (см. : 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() с соответствующим активным буфером. Обратите внимание, что
эта функция будет перечислять только те файлы тегов, которые уже существуют.

2

Другие решения

Я столкнулся с подобной проблемой. Мне нужно было это для использования с разработкой, используя llvm.
Я решил это, выполнив следующие шаги:

  1. Ctags -R --fields=+l * в вашем проекте / кодовой базе.
  2. В вашем пользовательском файле .vimrc добавьте let g:ycm_collect_identifiers_from_tags_files = 1
  3. cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
  4. Добавьте еще одну строку в .vimrc let g:ycm_global_ycm_extra_conf = '/home/<user>/ycm_extra_conf.py'
  5. сбросить терминал или нажать bash

Примечание: вы должны запустить vim в каталоге с тегами, присутствующими в нем. Или вам может понадобиться явно указать каталог, в котором присутствуют теги.

1

Вы должны искать YCM-генератор. Это скрипт, который генерирует ycm_extra_conf.py, запустив make и ищет все используемые флаги. Вы запускаете его один раз для проекта и запускаете только после изменения make-файла.

0
По вопросам рекламы [email protected]