Я только что установил YouCompleteMe для Vim через vundle. Он работает, но в нем отображаются только слова, содержащиеся в текущем файле. Я хочу использовать его для разработки С++-программ, как настроить его для отображения автозаполнения из файла заголовков С++ в /usr/include, например? Большое спасибо.
Конфигурация Vim YouCompleteMe
Ответ 1
В то время как предложения здесь могут работать в начале, я не уверен, что это правильный путь. Согласно разработчику YCM, всякий раз, когда вы начинаете проект, вам нужен новый .ycm_extra_conf.py файл
Из https://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64-super-quick-installation
YCM ищет файл .ycm_extra_conf.py в каталоге открытого файла или в любом каталоге выше его в иерархии (рекурсивно); когда файл найден, он загружается (только один раз!) в качестве модуля Python. YCM вызывает метод FlagsForFile в этом модуле, который должен предоставить ему информацию, необходимую для компиляции текущего файла. Вы также можете указать путь к глобальному файлу .ycm_extra_conf.py, который будет использоваться в качестве резервной копии. Чтобы предотвратить выполнение вредоносного кода из файла, вы не писали YCM спросит вас один раз за .ycm_extra_conf.py, если он безопасен для загрузки. Это можно отключить, и вы можете использовать файлы white/blacklist. Подробнее см. В разделе "Параметры".
Хотя вам может потребоваться изменить флаги компиляции из vanilla.ycm_extra_conf.py, я считаю, что желательно создать новый файл для каждого запускаемого проекта.
Ответ 2
Вам нужно перейти к ~/.vim/bundles/YouCompleteMe
и запустить установку script с помощью --clang-completer
, так что ./install.sh --clang-completer
. После того, как он закончится, у вас должна быть поддержка C-подобных языков.
Вам также может понадобиться разместить let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'
в ~/.vimrc
.
Ответ 3
Я установил с патогеном. Я пробовал приведенные выше инструкции с помощью. /install.sh -clang-complete. После этого это не сработало, и мне действительно пришлось добавить путь. Но это было иначе, чем в другом ответе, а именно
let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
поэтому в пути есть дополнительная "third_party/ycmd".