Auto-complétion avec Vim

De Linux Server Wiki
Aller à : navigation, rechercher

Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.

Ce tutoriel est basé sur cet article.

Les paquets nécessaires sont : vim, ctags

1 Auto-complétion Cpp/Qt4

1.1 Configuration de Vim

Votre fichier de configuration doit comporter les commandes suivantes :

set nocp
filetype plugin on
" Reconstruire les tags de son projet avec F12
map <F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" gestion plus intelligente du popup
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest

Avec cette configuration, F12 crééra un fichier tags dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.

1.2 Omnicppcomplete

Il faut d'abord récupérer Omnicppcomplete. Pour son installation :

  • Le dézipper dans son dossier ~/.vim

1.3 Tags C++

Il faut ensuite télécharger les stdc++ tags.

  • D'abord créer un dossier ~/.vim/tags si inexistant
  • Extraire le dossier cpp_src dans le dossier tags</coed>
  • Les créer :
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src
  • Et enfin rajouter dans la configuration de Vim:
set tags+=~/.vim/tags/cpp

1.4 Tags Qt4

Plus rien de très compliqué :

  • Générer les ctags :
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/
  • Et rajouter dans la configuration de son Vim :
set tags+=~/.vim/tags/qt