Les etags
standard GNU ne supportent pas une marche récursive de répertoires comme le font les ctags -R
exubérants. Si je n’ai access qu’aux etags GNU, comment puis-je utiliser bash shell magic pour que etags produise une table TAGS pour tous les fichiers C ++ *.cpp
et *.h
répertoire en cours et tous les répertoires situés en dessous du fichier en cours de manière récursive créer une table TAGS dans le répertoire en cours avec le nom de chemin approprié pour emacs
afin de résoudre les entrées de la table TAGS.
Le wiki Emacs est souvent une bonne source de réponses aux problèmes courants ou aux meilleures pratiques. Pour votre problème spécifique, il existe une solution pour Windows et Unixen:
http://www.emacswiki.org/emacs/RecursiveTags#toc2
En gros, vous exécutez une commande pour rechercher tous les fichiers .cpp
et tous les fichiers .h
(modifiez les sélecteurs de fichiers si vous utilisez des terminaisons de fichiers différentes, telles que .C
) et dirigez le résultat dans etags. Comme Windows ne semble pas avoir xargs, vous avez besoin d’une version plus récente d’etags pouvant lire stdin (notez le tiret à la fin de la ligne qui symbolise stdin). Bien sûr, si vous utilisez une version récente d’etags, vous pouvez également utiliser le paramètre dash au lieu de xargs.
Windows :
cd c:\source-root dir /b /s *.cpp *.h *.hpp | etags --your_options -
Unix :
cd /path/to/source-root find . -name "*.cpp" -print -or -name "*.h" -print | xargs etags --append
Cette commande crée un fichier etags avec le nom par défaut “TAGS” pour les fichiers .c, .cpp, .Cpp, .hpp, .Hpp .h récursivement.
find . -regex ".*\.[cChH]\(pp\)?" -print | etags -
Utilisez find. homme trouve si tu as besoin.