Vim et Ctags: ignorer certains fichiers lors de la génération de balises
J'ai un dossier llvm2.9, dans lequel j'ai exécuté cette commande.
$> ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
C'était des méthodes d'indexation dans *.fichiers html également présents dans llvm2. 9 / docs. J'ai découvert cela parce que quand j'ai appuyé sur ctrl -] pour une classe, il est allé au fichier html.
Comment puis-je forcer ctags à utiliser .rpc/.h fichiers seuls ou ignorer un répertoire particulier.
Merci
4 réponses
Vous pouvez exclure un type de fichier en utilisant
--exclude=*.html
Si vous devez exclure plus que juste .fichiers html:
Vous ne pouvez pas séparer une liste par des virgules dans une option d'exclusion. Cela ne fonctionne pas:
ctags --exclude=*.html,*.js ./*
Cependant, vous pouvez passer plusieurs options d'exclusion:
ctags --exclude=*.html --exclude=*.js ./*
Passez l'option-V pour aider au débogage:
ctags -V --exclude=*.html --exclude=*.js ./*
Donne la sortie:
Reading initial options from command line
Option: --exclude=*.html
adding exclude pattern: *.html
Option: --exclude=*.js
adding exclude pattern: *.js
Le moyen le plus simple dans vim serait
:!ctags {.,**}/*.{cpp,h}
Explication: Les accolades étendre à
:!ctags ./*.cpp **/*.cpp **/*.h **/*.h
Il recherche donc les fichiers source ou d'en-tête dans le répertoire courant (
./
) ou tout répertoire imbriqué (**/
). Note**/
ne correspond pas au répertoire courant (il correspond toujours à au moins 1 niveau de sous-répertoire)
Dans le shell:
find -iname '*.cpp' -o '*.h' -print0 | xargs -0 ctags
explication : ceci trouve récursivement tout .rpc et .h fichiers sous le courant et les transmet à
ctags
sur la ligne de commande.La façon dont
print0
et-0
fonctionnent ensemble est de s'assurer qu'il fonctionne correctement avec des noms de fichiers étranges (par exemple contenant des espaces ou même de nouveaux caractères de ligne)
Je vais laisser le reste des options ctags pour votre propre imagination:)
PS. Pour les bash-es récents, vous pouvez utiliser
shopt -s globstar
ctags {.,**}/*.{cpp,h}
Et obtenez à peu près le même comportement que dans vim !
Je ne voulais pas traquer tous les types de fichiers qui pourraient être traités dans un grand projet, et je ne m'intéressais qu'à Python, donc je ne traitais explicitement que les fichiers python en utilisant ctags --languages=Python ...
. La liste des noms de langue peut être vue en utilisant ctags --list-languages
.