Transformer Vim en IDE avec TagList
TagList est un greffon qui permet de transformer Vim en IDE. Vous pouvez naviguer parmi les fonctions utilisés dans votre fichier ouvert.
http://vim-taglist.sourceforge.net/index.html
Il dépend d'un autre greffon nommé cTags.
Avant d'aller plus loin, il est important de vérifier si, sur votre distribution, Vim est compilé avec la fonction system( ).
Pour cela ouvrons Vim et tapons la commande suivante :
:echo exists('*system')
Si Vim est compilé avec la fonction, 1 est renvoyé, on peut donc aller plus loin.
Installation de cTags
cTags est empaqueté, du moins c'est la cas sur Mageia, donc on installe le paquet :
# urpmi ctags
Pour déterminer le type de fichier courant, il faut activer l'option filetype dans vim.
On l'ajoute au fichier de configuration personnel de Vim
$ vim ~/.vimrc
filetype on
Installation de TagList
Téléchargement depuis http://sourceforge.net/projects/vim-taglist/files/ ou avec wget :
$ mkdir $HOME/.vim/
$ cd $HOME/.vim
$ wget http://freefr.dl.sourceforge.net/project/vim-taglist/vim-taglist/4.5/taglist_45.zip
$ unzip taglist_45.zip
$ rm -rf taglist_45.zip
Utilisation
Lancer Vim.
Ouvrez par exemple une classe PHP :
$ vim dotclear/inc/classes/class.plugins.php
Pour ouvrir le navigateur de tags :
echap :TlistToggle
Pour avoir de l'aide :
echap :help taglist
Pour passer de la fenêtre de navigation à la fenêtre du fichier ouvert et inversement :
echap [CTRL + w] + → ou←
Vous pouvez enregistrer les différentes fenêtres splittées pour les retrouver à la prochaine ouverture :
echap :mksession
echap :mksession! si le fichier d'enregistrement de la session
Pour récupérer une session enregistrée :
$ vim -S
D'autres extensions pour Vim :
http://www.vim.org/scripts/script_search_results.php
Guide pour vim :
http://all4dev.libre-entreprise.org/index.php/Guide_de_contr%C3%B4le_total_de_vim
Commentaires
Complément
Pour ceux qui souhaites assigner TlistToggle à une touche, il suffit d'ajouter (par exemple) nnoremap <F9> :TlistToggle<CR> dans le .vimrc. Et pour ceux qui préfère avoir cette fenêtre à droite, ajoutez let Tlist_Use_Right_Window = 1 dans ce même fichier !