Конфигурация Vim YouCompleteMe

Я только что установил YouCompleteMe для Vim через vundle. Он работает, но показывает только слова, содержащиеся в текущем файле. Я хочу использовать его для разработки программ на C++, как я могу настроить его, чтобы показать автозаполнение из файла заголовков c++ в /usr/include, например? Большое спасибо.

4 ответов


хотя предложения здесь могут работать в начале, я не уверен, что это правильный путь. По словам разработчика ycm по, Когда вы начинаете проект, вам нужен новый .ycm_extra_conf.py

от https://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64-super-quick-installation

YCM ищет a .ycm_extra_conf.py файл в каталоге открытого файла или в любом каталоге над ним в иерархии (рекурсивно); если файл найден, он загружается (только один раз!) как модуль Python. YCM вызывает метод FlagsForFile в этом модуле, который должен предоставить ему информацию, необходимую для компиляции текущего файла. Вы также можете указать путь к глобальной .файл ycm_extra_conf.py , который будет использоваться в качестве запасного варианта. Чтобы предотвратить выполнение вредоносного кода из файла, который вы не писали, YCM попросит вас один раз.ycm_extra_conf.py если безопасно нагрузить. Это можно отключить, и вы можете белый/черный список файлов. Дополнительные сведения см. В разделе Параметры.

в то время как вам может потребоваться только изменить флаги компиляции из ванили .ycm_extra_conf.py, я считаю целесообразным создать новый файл для каждого проекта, который вы начинаете.


вам нужно перейти к ~/.vim/bundles/YouCompleteMe и запустите сценарий установки с помощью --clang-completer, Так что ./install.sh --clang-completer. После его завершения у вас должна быть поддержка C-подобных языков.

Вам также может понадобиться место let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' в своем ~/.vimrc.


Я установил с патогеном. Я попробовал вышеуказанные инструкции. /install.sh -лязг-полный. После этого, он не работал, и мне действительно пришлось добавить путь. Но это было совсем не то, что в другом ответе, а именно:--2-->

let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

таким образом, в пути есть дополнительный "third_party/ycmd".


все, что люди здесь сказали, правильно. Я просто хочу добавить, что с 2017 года "install.sh-сценарий устарел. Теперь, вы должны использовать install.py скрипт вместо этого набрав

./install.py --clang-completer

кроме того, в вашем .файл vimrc, вместо ".vim / bundle / blahblahblah", вам нужно добавить "~ / " перед адресом, добавив:

let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"

в свой .файл vimrc, чтобы дать ему абсолютный путь из домашнего каталога, чтобы Vim мог найти ".ycm_extra_conf.py" файл. В противном случае, вы можете испытать какое-то странное поведение.