document
Transcription
document
This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 CTAGS Ctags est un outil d’indexation (ou de r•f•rence crois•e) pour les langages de programmation (C, C++, Lisp, Python, Perl,…). C’est un outils trƒs important pour les programmeurs. O€ le t•l•charger ? http://ctags.sourceforge.net/ Prendre le binaire RPM (ctags-5.5.4-1.i386.rpm) pour Redhat ou Mandrake Prendre les sources (ctags-5.5.4.tar.gz) pour les autres distributions. Il existe €galement une version pour Windows (ec554w32.zip) Comment l’installer ? Pour Redhat ou mandrake : $ rpm –iv ctags-5.5.4-1.i386.rpm Pour les autres distributions : $ tar zxvf ctags-5.5.4.tar.gz $ cd ctags-5.5.4/ $ ./configure $ make && make install // il faut •tre root Pour Windows : D€-zipper ec554w32.zip et double-cliquer sur l’ex€cutable. A quoi cela sert-il ? Ctags g€nƒre un fichier d’index des objets (variables, fonctions, maccros) des langages connus. Cet index, qui r€pertorie les informations sur divers objets trouv€s dans une s€rie de fichiers €crits dans les langages connus par ctags : Permettra aux €diteurs de textes (GNU/Emacs, Vi, Nedit, …) de localiser plus ais€ment les €l€ments index€s. Peut •tre affich€ sur la sortie standard, sous un format compr€hensible pour l’Homme. Comment l’utiliser ? $ ctags [options] [fichier(s)] cela va cr€er un fichier nomm€ … tags † . This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Pour plus d’informations : Le manuel : $ man ctags Le built-in du shell : $ help ctags ou $ ctags --help Les options Pour les options suivantes, ctags ne cr€e pas de fichier … tags †, il utilise la sortie standard comme fichier. --list-languages Affiche la liste des langages de programmation support€s par ctags. Exemple : $ ctags --list-languages Asm Asp Awk C C++ Cobol … --list-maps=x Affiche la liste des extensions possibles pour un langage x. x peut prendre les valeurs suivantes : C, C++, Lisp, Python, … ou all pour afficher les extensions de tous les langages support€s. -x Affiche une r€f€rence crois€e sur la sortie standard dans un format agr€able pour un •tre humain (format€ comme l’option –l de la commande ls). L’affichage se fait avec une ligne de 5 colonnes par objet index€. Colonne 1 : nom de l’objet index€. Colonne 2 : type de l’objet (variable, fonctions, maccros, …). Colonne 3 : ligne ou cet objet est d€finit. Colonne 4 : fichier ou est d€finit l’objet. Colonne 5 : d€clarations ou prototypes de l’objet. Exemple : $ ctags –x *.c *.h Cf. Capture 5 pour le r€sultat de cette commande - x --c-kinds = t Affiche sur la sortie standard les objets index€s de type t uniquement. t peut prendre les valeurs suivantes : v pour afficher seulement les variables index€s. f pour les fonctions. d pour les maccro. m pour les structures / classes. t pour les typedefs. … Pour conna„tre les valeurs possibles de t (et leurs significations) pour les langages connus par ctags, utiliser la commande ctags –list-kinds Exemple : $ ctags –x –c-kinds=f *.c Cf. Capture 2 pour le r€sultat de cette commande This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Pour les options suivantes, ctags va cr€er un fichier nomm€ … tags † par d€faut. C’est ce fichier qui sera utilis€ par les €diteurs de texte. -a -e Ajoute les index dans un fichier t … tags † existant (sans €crasement). Le fichier d’index se nommera … TAGS † et non … tags †. Pour qu’Emacs puisse l’utiliser. ˆquivalent ‰ l’outil etags (ctags sp€cialement conŠu pour Emacs). Exemple : $ ctags –e *.c *.h Cette commande va cr•e un fichier d’index de tous les fichiers se terminant par .c ou par .h, dans le r•pertoire ou elle a •t• lanc•e ; Cela implique que l’utilisateur qui lance cette commande doit avoir les droits d’•criture dans le r•pertoire d’o… il se trouve. -f filename Le fichier d’index s’appellera filename au lieu de … tags †. ˆquivalent ‰ l’option –o filename. Exemple : $ ctags –f mestags *.c *.h va cr•er un fichier d’index nomm• † mestags ‡. Cf. Capture 3. -R Pour lanc• ctags r•cursivement au niveau des r•pertoires. Le fichier de r•f•rence sera cr•e dans le r•pertoire o… la commande a •t• tap•. --totals=yes affiche le nombre de fichier index•, le nombre d’objet index•, les temps mis pour construire l’index et pour le trier par ordre alphab•tique. Cf. Capture 3 … Pour les autres options consulter le man ou le built-in du shell. Comment l’utiliser avec l’•diteur gvim et Vi? $ ctags *.c *.h $ gvim -t plus Ceci €ditera le fichier programme C qui contient la fonction plus() et placera directement le curseur sur la premiƒre ligne de la fonction plus(). $ gvim -t main De m•me, cette commande vous placera sur la ligne contenant la d€finition de la fonction main(). Dans l'€diteur Vi, vous pouvez sauter ‰ une fonction en tapant : (double point) tag nom_de_la_fonction comme ci dessous : This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 : tag nom_fonction : tag div () Ceci placera le curseur sur la premiƒre ligne de fonction (). Si vous voulez sauter dans la fonction ‰ partir de la ligne du fichier contenant le nom de la fonction, placez le curseur juste avant le nom de la fonction et tapez CTRL+] (tapez la touche de contr‹le et le crochet gauche simultan€ment). int main () { printf(“%d\n”, div(UN,DEUX)) ^ | | Placez le curseur ici (juste avant div()) et tapez CTRL+] Ceci vous emmƒnera ‰ la d€finition de la fonction "div()" (m•me s’il est dans un autre fichier). Pour revenir ‰ cette ligne tapez CTRL+t (la touche CTRL et la lettre ‘t’ simultan•ment). Continuez ‰ appuyer sur CTRL+t pour inverser et revenir ‰ la premiƒre ligne o… vous avez commenc• la navigation. C'est-‰-dire que vous pouvez conserver press•es CTRL+] et ensuite taper CTRL+t pour revenir. Vous pouvez refaire ceci aussi souvent que vous le d•sirez pour avoir une navigation complƒte au travers de toutes les fonctions C ou C++. Comment l’utiliser avec GNU/Emacs ? Par d•faut, Emacs va essayer de charger un fichier d’index nomm• † TAGS ‡ dans le r•pertoire courant ; c’est pour cette raison que l’on utilise l’option –e qui cr•e ce fichier. Une fois, le fichier d’indexation cr••, on peut ex•cuter les commandes suivantes : M-x visit-tags-table <RET> filname <RET> (par d€faut, filename = TAGS). Cette commande permet de s€lectionner et de charger le fichier d’index ‰ utiliser par Emacs. M-. [TAG] <RET> Trouve le premier objet index€. Par d€faut, c’est l’objet (fonction ou variables) sous le curseur. M-* C’est l’•quivalent du CTRL+t dans Vi. (cf. le paragraphe pr•c•dent). On peut •galement utiliser l’interface graphique de Emacs : Edit / Go to / Set Tags File Name pour charger le fichier d’index. Edit / Go to / Find Tag €qivalent ‰ M-. [TAG] <RET> Autres Le fichier d’index ainsi cr•e peut aussi servir ‰ d’autres •diteurs ou autres programme , notamment dans des script shell. Cf. Capture 4 pour voir le contenu d’un fichier d’index cr•er par ctags. This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Les sources et captures d’•cran pour les exemples: Les fichiers sont plac€s dans un r€pertoire nomm€ Exemple : Capture 1 : les fichiers du r€pertoire Exemple/ Capture 2 : l’option –x –c-kinds=f This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Capture 3 : l’option –f et --totals=yes Capture 4 : le contenu du fichier d’index (mestags). This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Capture 5 : l’option –x Remarques Les options peuvent •tre mis par d€faut dans le fichier /etc/ctags.conf ou ~/ctags.conf1 En g€n€ral dans les derniƒres versions, il faut cr€er soit m•me ce fichier. Voici ‰ quoi cela ressemble : /etc/ctags.conf --verbose=yes --totals=yes --recurse --langmap=asm: --langdef=Splus --langmap=Splus:.s.S.R.r.q --regex-Splus=/^[ \t]+"?([.A-Za-z][.A-Za-z0-9]*)"?[ \t]*(<-|_)[ \t]*function/\1/ --regex-Splus=/^"?([.A-Za-z][.A-Za-z0-9]*)"?[ \t]*(<-|_)/\1/ Ressources Internet (ctags.sourceforge.net) Le manpage et le help du shel. This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 CTAGS Ctags est un outil d’indexation (ou de r•f•rence crois•e) pour les langages de programmation (C, C++, Lisp, Python, Perl,…). C’est un outils trƒs important pour les programmeurs. O€ le t•l•charger ? http://ctags.sourceforge.net/ Prendre le binaire RPM (ctags-5.5.4-1.i386.rpm) pour Redhat ou Mandrake Prendre les sources (ctags-5.5.4.tar.gz) pour les autres distributions. Il existe €galement une version pour Windows (ec554w32.zip) Comment l’installer ? Pour Redhat ou mandrake : $ rpm –iv ctags-5.5.4-1.i386.rpm Pour les autres distributions : $ tar zxvf ctags-5.5.4.tar.gz $ cd ctags-5.5.4/ $ ./configure $ make && make install // il faut •tre root Pour Windows : D€-zipper ec554w32.zip et double-cliquer sur l’ex€cutable. A quoi cela sert-il ? Ctags g€nƒre un fichier d’index des objets (variables, fonctions, maccros) des langages connus. Cet index, qui r€pertorie les informations sur divers objets trouv€s dans une s€rie de fichiers €crits dans les langages connus par ctags : Permettra aux €diteurs de textes (GNU/Emacs, Vi, Nedit, …) de localiser plus ais€ment les €l€ments index€s. Peut •tre affich€ sur la sortie standard, sous un format compr€hensible pour l’Homme. Comment l’utiliser ? $ ctags [options] [fichier(s)] cela va cr€er un fichier nomm€ … tags † . This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Pour plus d’informations : Le manuel : $ man ctags Le built-in du shell : $ help ctags ou $ ctags --help Les options Pour les options suivantes, ctags ne cr€e pas de fichier … tags †, il utilise la sortie standard comme fichier. --list-languages Affiche la liste des langages de programmation support€s par ctags. Exemple : $ ctags --list-languages Asm Asp Awk C C++ Cobol … --list-maps=x Affiche la liste des extensions possibles pour un langage x. x peut prendre les valeurs suivantes : C, C++, Lisp, Python, … ou all pour afficher les extensions de tous les langages support€s. -x Affiche une r€f€rence crois€e sur la sortie standard dans un format agr€able pour un •tre humain (format€ comme l’option –l de la commande ls). L’affichage se fait avec une ligne de 5 colonnes par objet index€. Colonne 1 : nom de l’objet index€. Colonne 2 : type de l’objet (variable, fonctions, maccros, …). Colonne 3 : ligne ou cet objet est d€finit. Colonne 4 : fichier ou est d€finit l’objet. Colonne 5 : d€clarations ou prototypes de l’objet. Exemple : $ ctags –x *.c *.h Cf. Capture 5 pour le r€sultat de cette commande - x --c-kinds = t Affiche sur la sortie standard les objets index€s de type t uniquement. t peut prendre les valeurs suivantes : v pour afficher seulement les variables index€s. f pour les fonctions. d pour les maccro. m pour les structures / classes. t pour les typedefs. … Pour conna„tre les valeurs possibles de t (et leurs significations) pour les langages connus par ctags, utiliser la commande ctags –list-kinds Exemple : $ ctags –x –c-kinds=f *.c Cf. Capture 2 pour le r€sultat de cette commande This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Pour les options suivantes, ctags va cr€er un fichier nomm€ … tags † par d€faut. C’est ce fichier qui sera utilis€ par les €diteurs de texte. -a -e Ajoute les index dans un fichier t … tags † existant (sans €crasement). Le fichier d’index se nommera … TAGS † et non … tags †. Pour qu’Emacs puisse l’utiliser. ˆquivalent ‰ l’outil etags (ctags sp€cialement conŠu pour Emacs). Exemple : $ ctags –e *.c *.h Cette commande va cr•e un fichier d’index de tous les fichiers se terminant par .c ou par .h, dans le r•pertoire ou elle a •t• lanc•e ; Cela implique que l’utilisateur qui lance cette commande doit avoir les droits d’•criture dans le r•pertoire d’o… il se trouve. -f filename Le fichier d’index s’appellera filename au lieu de … tags †. ˆquivalent ‰ l’option –o filename. Exemple : $ ctags –f mestags *.c *.h va cr•er un fichier d’index nomm• † mestags ‡. Cf. Capture 3. -R Pour lanc• ctags r•cursivement au niveau des r•pertoires. Le fichier de r•f•rence sera cr•e dans le r•pertoire o… la commande a •t• tap•. --totals=yes affiche le nombre de fichier index•, le nombre d’objet index•, les temps mis pour construire l’index et pour le trier par ordre alphab•tique. Cf. Capture 3 … Pour les autres options consulter le man ou le built-in du shell. Comment l’utiliser avec l’•diteur gvim et Vi? $ ctags *.c *.h $ gvim -t plus Ceci €ditera le fichier programme C qui contient la fonction plus() et placera directement le curseur sur la premiƒre ligne de la fonction plus(). $ gvim -t main De m•me, cette commande vous placera sur la ligne contenant la d€finition de la fonction main(). Dans l'€diteur Vi, vous pouvez sauter ‰ une fonction en tapant : (double point) tag nom_de_la_fonction comme ci dessous : This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 : tag nom_fonction : tag div () Ceci placera le curseur sur la premiƒre ligne de fonction (). Si vous voulez sauter dans la fonction ‰ partir de la ligne du fichier contenant le nom de la fonction, placez le curseur juste avant le nom de la fonction et tapez CTRL+] (tapez la touche de contr‹le et le crochet gauche simultan€ment). int main () { printf(“%d\n”, div(UN,DEUX)) ^ | | Placez le curseur ici (juste avant div()) et tapez CTRL+] Ceci vous emmƒnera ‰ la d€finition de la fonction "div()" (m•me s’il est dans un autre fichier). Pour revenir ‰ cette ligne tapez CTRL+t (la touche CTRL et la lettre ‘t’ simultan•ment). Continuez ‰ appuyer sur CTRL+t pour inverser et revenir ‰ la premiƒre ligne o… vous avez commenc• la navigation. C'est-‰-dire que vous pouvez conserver press•es CTRL+] et ensuite taper CTRL+t pour revenir. Vous pouvez refaire ceci aussi souvent que vous le d•sirez pour avoir une navigation complƒte au travers de toutes les fonctions C ou C++. Comment l’utiliser avec GNU/Emacs ? Par d•faut, Emacs va essayer de charger un fichier d’index nomm• † TAGS ‡ dans le r•pertoire courant ; c’est pour cette raison que l’on utilise l’option –e qui cr•e ce fichier. Une fois, le fichier d’indexation cr••, on peut ex•cuter les commandes suivantes : M-x visit-tags-table <RET> filname <RET> (par d€faut, filename = TAGS). Cette commande permet de s€lectionner et de charger le fichier d’index ‰ utiliser par Emacs. M-. [TAG] <RET> Trouve le premier objet index€. Par d€faut, c’est l’objet (fonction ou variables) sous le curseur. M-* C’est l’•quivalent du CTRL+t dans Vi. (cf. le paragraphe pr•c•dent). On peut •galement utiliser l’interface graphique de Emacs : Edit / Go to / Set Tags File Name pour charger le fichier d’index. Edit / Go to / Find Tag €qivalent ‰ M-. [TAG] <RET> Autres Le fichier d’index ainsi cr•e peut aussi servir ‰ d’autres •diteurs ou autres programme , notamment dans des script shell. Cf. Capture 4 pour voir le contenu d’un fichier d’index cr•er par ctags. This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Les sources et captures d’•cran pour les exemples: Les fichiers sont plac€s dans un r€pertoire nomm€ Exemple : Capture 1 : les fichiers du r€pertoire Exemple/ Capture 2 : l’option –x –c-kinds=f This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Capture 3 : l’option –f et --totals=yes Capture 4 : le contenu du fichier d’index (mestags). This document was created with free TRIAL version of eXPert PDF.This watermark will be removed after purchasing the licensed full version of eXPert PDF. Please visit www.visagesoft.com for more details DUPUY Daddimy 169 634 Sassi M. Amine 177 138 Capture 5 : l’option –x Remarques Les options peuvent •tre mis par d€faut dans le fichier /etc/ctags.conf ou ~/ctags.conf1 En g€n€ral dans les derniƒres versions, il faut cr€er soit m•me ce fichier. Voici ‰ quoi cela ressemble : /etc/ctags.conf --verbose=yes --totals=yes --recurse --langmap=asm: --langdef=Splus --langmap=Splus:.s.S.R.r.q --regex-Splus=/^[ \t]+"?([.A-Za-z][.A-Za-z0-9]*)"?[ \t]*(<-|_)[ \t]*function/\1/ --regex-Splus=/^"?([.A-Za-z][.A-Za-z0-9]*)"?[ \t]*(<-|_)/\1/ Ressources Internet (ctags.sourceforge.net) Le manpage et le help du shell.