« Auto-complétion avec Vim » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
(Page créée avec « 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 p... »)
 
Ligne 11 : Ligne 11 :
filetype plugin on
filetype plugin on
" Reconstruire les tags de son projet avec Ctrl-F12
" Reconstruire les tags de son projet avec Ctrl-F12
map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
map <F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
" OmniCppComplete
" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_NamespaceSearch = 1
Ligne 25 : Ligne 25 :
set completeopt=menuone,menu,longest
set completeopt=menuone,menu,longest
</pre>
</pre>
Avec cette configuration, F12 créera un fichier <code>tags</code> dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.


=Omnicppcomplete=
=Omnicppcomplete=

Version du 3 février 2011 à 14:32

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

Configuration de Vim

Votre fichier de configuration doit comporter les commandes suivantes :

set nocp
filetype plugin on
" Reconstruire les tags de son projet avec Ctrl-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éera un fichier tags dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.

Omnicppcomplete

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

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

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

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