Ce billet est certainement les millionième howto du web sur vim+ctags. Je partage quand même ce mémo au cas où il soit utile à quelqu’un.
sudo aptitude install exuberant-ctags
Ajoutez les lignes suivantes au fichier ~/.vimrc :
set tags=tags;/ " Permet de rechercher un fichier "tags" en remontant depuis le répertoire courant jusqu'à la racine jusqu'à ce qu'il soit trouvé
map :tab split:exec("tag ".expand(""))
map :vsp :exec("tag ".expand(""))
Ajoutez ceci à votre ~/.bashrc ou ~/.bash_aliases :
phptags () {
ctags-exuberant -h ".php" -R \
--exclude="\.svn" \
--totals=yes \
--tag-relative=yes \
--PHP-kinds=+cf \
--regex-PHP='/abstract class ([^ ]*)/\1/c/' \
--regex-PHP='/interface ([^ ]*)/\1/c/' \
--regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/'
}
Puis placez vous à la racine de votre projet et exécutez :
phptags
Un fichier tags devrait avoir été créé, et devrait être pris en compte au prochain démarrage de vim.
Voici donc les différentes façon de naviguer dans vos sources (en vous plaçant au début d’un appel de fonction) :
- Ctrl ] Devrait vous amener à la définition de la fonction/classe (= Ctrl ClicGauche)
- Ctrl T Vous ramènera à l’appel de la fonction (= Ctrl ClicDroit)
- Ctrl W Ctrl ] Ouvrira la définition dans un panneau horizontal
- Alt ] Ouvrira la définition dans un panneau vertical
- Ctrl \ Ouvrira la définition dans un nouvel onglet