2017-07-17 4 views
2

Je veux créer un fichier de balises pour C et C++, exclure tous les fichiers dans /usr/include/python2.7, tous les fichiers dans /usr/include/* au lieu de /usr/include/python2.7 ont été créés tag.Pourquoi ne peut pas exclure les fichiers avec argument exclude dans la commande ctags?

ctags -R -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ \ 
    --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p \ 
    --c++-kinds=+p --fields=+iaS --extra=+q \ 
    -f .vim/tags/c.tag /usr/include/* --exclude="/usr/include/python2.7" 

Il est inutile d'écrire comme

ctags -R -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ \ 
    --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p \ 
    --c++-kinds=+p --fields=+iaS --extra=+q \ 
    -f .vim/tags/c.tag /usr/include/* --exclude=/usr/include/python2.7/* 

Pourquoi encore beaucoup de contenu se forme /usr/include/python2.7?

grep "python*" /home/debian8/.vim/tags/c.tag 
ysize /usr/include/python2.7/Imaging.h /^ int xsize, ysize, xoff, yoff;$/;" m struct:ImagingCodecStateInstance access:public 
ysize /usr/include/python2.7/Imaging.h /^ int ysize;$/;" m struct:ImagingMemoryInstance access:public 
ystep /usr/include/python2.7/Imaging.h /^ int ystep;$/;" m struct:ImagingCodecStateInstance access:public 

Répondre

3

Vous essayez d'ajouter plus d'options après votre répertoire cible. Cela ne marchera pas.

Cela devrait fonctionner:

ctags -R -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ \ 
    --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p \ 
    --c++-kinds=+p --fields=+iaS --extra=+q \ 
    -f .vim/tags/c.tag --exclude=python2.7 /usr/include 

Il est la même commande que vous avez utilisé avec trois différences:

  1. Indique l'option --excludeavant le répertoire cible à l'index.

  2. Spécifie le répertoire cible (/usr/include) sans caractère générique, car ctags sait déjà qu'il doit tout voir à l'intérieur.

  3. Il suffit d'exclure python2.7 car seul ce nom de répertoire est nécessaire. S'il voit ce nom de répertoire, il ne va pas y entrer et indexer quoi que ce soit. Le chemin complet n'est pas requis ici.