我想为C和C ++创建标记文件,排除/usr/include/python2.7
中的所有文件,/usr/include/*
而不是/usr/include/python2.7
中的所有文件都已创建标记。
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"
将其写为
是没有用的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/*
为什么还有很多内容来自/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
答案 0 :(得分:3)
您正尝试在目标目录之后添加更多选项。那不会起作用。
这应该有效:
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
这与您使用的命令相同,但有三个不同之处:
在要编制索引的目标目录之前指定--exclude
选项。
指定没有通配符的目标目录(/usr/include
),因为ctags已经知道要查看内部的所有内容。
只需要排除python2.7
,因为只需要该目录名称。如果它看到该目录名称,它将不会进入那里并索引任何内容。此处不需要完整路径。