web-dev-qa-db-fra.com

Configuration de Vim YouCompleteMe

je viens d'installer YouCompleteMe for Vim via vundle. Cela fonctionne, mais il ne montre que les mots contenus dans le fichier actuel. Je veux l'utiliser pour développer des programmes c ++, comment puis-je le configurer pour afficher l'auto-complétion à partir du fichier d'en-têtes c ++ dans/usr/include par exemple? Merci beaucoup.

19
mastergap

Bien que les suggestions ici puissent fonctionner au début, je ne suis pas sûre que ce soit la bonne façon de procéder. Selon le développeur YCM, chaque fois que vous démarrez un projet, vous avez besoin d’un nouveau fichier .ycm_extra_conf.py.

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

YCM recherche un fichier .ycm_extra_conf.py dans le répertoire du fichier ouvert ou dans le répertoire situé au-dessus dans la hiérarchie (de manière récursive); Lorsque le fichier est trouvé, il est chargé (une seule fois!) en tant que module Python. YCM appelle une méthode FlagsForFile dans ce module qui devrait lui fournir les informations nécessaires à la compilation du fichier actuel. Vous pouvez également fournir un chemin d'accès à un fichier global .ycm_extra_conf.py, qui sera utilisé comme solution de secours. Pour empêcher l'exécution de code malveillant depuis un fichier que vous n'avez pas écrit, YCM vous demandera une fois par .ycm_extra_conf.py s'il est sûr de le charger. Cela peut être désactivé et vous pouvez liste blanche/liste noire. Voir la section Options pour plus de détails.

Bien que vous n’ayez peut-être besoin que de modifier les indicateurs de compilation à partir du fichier .ycm_extra_conf.py de Vanilla, il est conseillé de créer un nouveau fichier pour chaque projet que vous démarrez.

2
xoSauce

Vous devez accéder à ~/.vim/bundles/YouCompleteMe et exécuter le script d'installation avec --clang-completer, de même que ./install.sh --clang-completer. Une fois terminé, vous devriez avoir un support pour C comme les langues.

Vous devrez peut-être aussi placer let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' dans votre ~/.vimrc.

19
Battleroid

J'ai installé avec un agent pathogène. J'ai essayé les instructions ci-dessus avec ./install.sh --clang-complete. Après cela, cela n’a pas fonctionné et j’ai dû ajouter le chemin. Mais c'était différent de celui d'une autre réponse, à savoir

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

il y a donc un "third_party/ycmd" supplémentaire dans le chemin.

6
deph

Je voulais juste ajouter que si vous ne voulez pas définir manuellement un fichier de configuration, il existe un joli petit référentiel qui le générera automatiquement. https://github.com/rdnetto/YCM-Generator

0
user2267258

Tout ce que les gens ici ont dit est correct. Je veux juste ajouter qu'à partir de 2017, le script "install.sh" est obsolète. Maintenant, vous devez utiliser le script install.py à la place en tapant

./install.py --clang-completer

De plus, dans votre fichier .vimrc, au lieu de ".vim/bundle/blahblahblah", vous devrez ajouter un "~ /" devant l'adresse en ajoutant:

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

dans votre fichier .vimrc, pour lui donner un chemin absolu depuis le répertoire Home afin que Vim puisse trouver le fichier ".ycm_extra_conf.py". Sinon, vous pourriez rencontrer un comportement amusant.