Niveau :
Résumé : ctags && etags
J'imagine qu'il vous arrive de lire le code d'un autre, ou même de lire le votre, et de chercher des fonctions précises. Si vous faites avec grep, vous perdez du temps a différencier les appels des déclarations. Si vous avez un vrai environnement de développement, alors vous disposez déjà de la fonction et vous avez raison.
Bon, maintenant supposons que vous n'ayez que des moyens ultra-sophistiqués à votre disposition, emacs ou vi.
Il existe deux commandes (qui en fait sont les mêmes) pour générer un fichier de tag qui sera lu par emacs ou vi pour retrouver instantanément ou est définie une fonction. Ces commandes sont etags pour emacs et ctags pour vi, avec presque les mêmes arguments. Elle comprennent toutes les 2 un très grand nombre de langages différents (etags --help
pour la liste):
Pour indexer des fichiers :
$ ctags fichier1.c fchier2.h $ etags fichier1.c fchier2.h
ctags génère un fichier tags alors que etags génère un fichier TAGS. Attention, les options par défaut de etags et de ctags ne sont pas les mêmes.
Avec vi, vous pouvez ouvrir directement le fichier contenant la définition de la fonction main en utilisant l'option suivante :
$ vi -t main
Pour utiliser le fichier de tags dans un éditeur déjà ouvert, vous avez plusieurs raccourcis.
- Sous emacs
M-. main
etM-x tags-search main
(et bien d'autres http://www.cs.cmu.edu/cgi-bin/info2... ) - Sous vi
:tag main
etctrl-]
Pour indexer tout un projet, utilisez une commande du style (à adapter selon le langage) :
$ find . -type f -name '*.c' -o -name '*.h' | xargs etags
Enfin un certain nombre d'options peut vous intéresser, pour cela je vous conseille la lecture de man etags. En particulier -d -g -m -t et -T
Comments