ctags |
Balise C |
---|---|
Linux | Externe |
Syntaxe
ctags [-BSstvraT] filesnames... |
Paramètres
Nom | Description |
---|---|
filenames... | Ce paramètre permet d'indiquer un ou plusieurs fichiers sources à analyser pour générer les tags. |
-B | Ce paramètre permet de créer les tags pour les expressions trouvées avant leur définition (utile si la déclaration précède l'implémentation dans le code). |
-S | Ce paramètre permet de traiter les noms insensibles à la casse (utile sur les systèmes sensibles à la casse). |
-s | Ce paramètre permet de générer des tags pour structures, unions et énumérations dans le code C. |
-t | Ce paramètre permet de générer des tags pour les typedefs en C/C++. |
-v | Ce paramètre permet de générer la sortie en format vgrind (utilisé pour l'impression de code source formaté). |
-r | Ce paramètre permet de lire les fichiers récursivement dans les sous-répertoires. |
-a | Ce paramètre permet d'ajouter les tags générés à la fin du fichier de tags existant (au lieu de l'écraser). |
-T | Ce paramètre permet de générer une table de tags au format cxref (pour générer des références croisées à partir de code C). |
Description
Cette commande permet de générer des balises et des références de fichiers si nécessaire.
Remarques
- Génération de balises pour la navigation dans le code : La commande ctags génère un fichier de balises (par défaut nommé tags) contenant des entrées pour chaque fonction, variable, structure ou autre élément définissable dans le code source. Ces balises sont utilisées par les éditeurs de texte comme vim pour naviguer directement vers la définition d'un élément du code. Exemple :
- Prise en charge de multiples langages de programmation : ctags prend en charge une large variété de langages de programmation, notamment C, C++, Java, Python, JavaScript, PHP et bien d'autres. Cela permet aux développeurs travaillant avec différents langages d'utiliser un seul outil pour créer des balises adaptées à leurs projets. Exemple :
- Utilisation avec des éditeurs de texte comme vim : L'intégration de ctags avec des éditeurs comme vim est très puissante. Dans
vim, une fois le fichier tags généré, il est possible de naviguer rapidement vers la définition d'une fonction ou d'une variable avec des commandes
comme Ctrl+]. Pour revenir en arrière, on utilise Ctrl+T. Cela permet une exploration fluide et rapide du code. Exemple :
vim mon_fichier.c Après avoir généré les balises avec ctags, vous pouvez utiliser Ctrl+] pour naviguer vers une fonction définie dans le fichier.
- Option -R pour la recherche récursive : L'option -R permet de générer les balises de manière récursive pour tous les fichiers dans le répertoire courant ainsi que dans ses sous-répertoires. Cela est particulièrement utile pour les grands projets qui contiennent plusieurs fichiers source répartis dans différents répertoires. Exemple :
- Support des options avancées comme --exclude : ctags offre des options avancées, comme --exclude, pour exclure certains fichiers ou répertoires de la génération des balises. Cela est utile pour éviter d'inclure des fichiers temporaires ou des répertoires externes comme ceux de node_modules ou .git. Exemple :
- Personnalisation des types de balises avec --fields : Avec l'option --fields, ctags permet de personnaliser les informations incluses dans les balises. Par exemple, vous pouvez choisir d'inclure des informations sur la ligne de définition d'une fonction, mais aussi sur son type et sa portée. Cela permet d'avoir un fichier tags plus détaillé ou plus léger selon les besoins. Exemple :
- Mise à jour des balises avec l'option -u : Si vous avez déjà un fichier tags existant et que vous souhaitez mettre à jour les balises pour un sous-ensemble de fichiers, vous pouvez utiliser l'option -u. Cela mettra à jour les balises sans supprimer les anciennes définitions qui n'ont pas changé. Exemple :
- Support pour l'indexation de plusieurs fichiers à la fois : ctags peut être utilisé pour indexer plusieurs fichiers à la fois, en spécifiant simplement les noms des fichiers ou en utilisant des caractères génériques (wildcards). Cela facilite la gestion de projets complexes comportant de nombreux fichiers source. Exemple :
ctags -R . |
Cela génère le fichier tags pour tous les fichiers du répertoire courant et de ses sous-répertoires.
ctags -R --languages=C,C++ . |
Cela génère des balises uniquement pour les fichiers C et C++ présents dans le répertoire.
ctags -R /chemin/vers/projet |
Cela crée un fichier tags pour tous les fichiers source du projet, quel que soit leur emplacement dans l'arborescence.
ctags -R --exclude=*.log --exclude=node_modules . |
Cela exclut tous les fichiers .log et le répertoire node_modules lors de la génération des balises.
ctags --fields=+l . |
Cela inclut les numéros de ligne dans les balises générées, ce qui est utile pour savoir où chaque élément est défini dans le code.
ctags -u fichier.c |
Cela met à jour les balises pour fichier.c sans toucher aux autres balises déjà générées pour les autres fichiers.
ctags *.c *.h |
Cela génère des balises pour tous les fichiers .c et .h du répertoire courant.
Voir également
Système d'exploitation - Linux - Références de commandes et de programmes - ex
Système d'exploitation - Linux - Références de commandes et de programmes - lex
Système d'exploitation - Linux - Références de commandes et de programmes - vgrind
Système d'exploitation - Linux - Références de commandes et de programmes - vi
Système d'exploitation - Linux - Références de commandes et de programmes - yacc