Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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".