Certains éditeurs (tels que Visual Studio sur Windows) effectuent l'auto-complétion C ++ qui comprend le C ++. Par exemple, étant donné:
#include <vector>
int main(void) {
std::vector<int> v;
v.i
Dans Visual Studio, l'auto-complétion sait que la seule méthode std::vector<int>
qui commence par un i est insert
.
Est-il possible d’obtenir ce type de complétion automatique dans vim?
ide
autocompletion
filetype-c++
Chris Jefferson
la source
la source
cd
entré dans le répertoire du plugin YCM (~/.vim/bundle
pour moi), puis j'ai couru./install --clang-completer
.Réponses:
J'aime vraiment clang_complete pour cela. Cela nécessite clang, et vous devez indiquer où se trouve libclang dans votre système. Après cela, cela fonctionne à merveille.
Les gens pourraient suggérer YouCompleteMe, mais pour être honnête, ce plugin est énormément bouffi pour ce qu'il dit, et il nécessite beaucoup trop d'étapes à installer. Je l'ai également eu segfault Vim à plusieurs reprises. Je ne pourrais pas être plus heureux avec clang_complete.
Voici ce que je reçois quand je tape
v.
:la source
return 0
dessous de ce menu contextuel.YouCompleteMe ( Link ) plugin a été un excellent travail pour moi. Il utilise libclang pour générer la fonctionnalité de saisie semi-automatique, fournissant un résultat précis.
Il a beaucoup de personnalisation, spécialement quand on travaille avec des drapeaux de compilation. Vous pouvez éditer le "générateur d'indicateurs" en modifiant un script Python par projet ( exemple ). Mais, pour moi, le principal avantage est qu’il prend en charge la base de données de compilation Clang ( Link! ). Cela signifie que vous pouvez compiler votre code normalement et demander à clang de cracher tous les indicateurs utilisés pour la compilation, et d'utiliser ces indicateurs avec YouCompleteMe. Très pratique si vous souhaitez que votre outil de complétion automatique connaisse vos définitions de macros ou l'emplacement de tous les fichiers d'en-tête de votre système sans effort de saisie manuelle.
la source
YouCompleteMe n’est pas si difficile à installer, et c’est assez stable pour moi, j’ai migré de clang_complete à YouCompleteMe il ya plusieurs années. Une chose que je suis d’accord, c’est en effet une énorme histoire de validations, de nombreuses dépendances internes et une prise en charge de nombreuses langues qui pourraient ne pas vous intéresser, mais qui finiront tout de même par cloner ses sous-modules associés. Ça, c'est un problème avec YouComplemeMe, quand même ... ça fait le travail.
J'ai travaillé sur un fork avec un but spécial pour mieux supporter le C ++, vous pouvez voir ce gif le montrer:
https://s3.amazonaws.com/f.cl.ly/items/1e2F0A123h331c1G0L0R/SadBart.gif
Il exploite les nouvelles informations de paramètres que Clang est en mesure de fournir. Pour en savoir plus à ce sujet, consultez cet article: http://nosubstance.me/articles/2015-01-29-better-completion-for-cpp/ .
la source