我有一个文件夹llvm2.9,我运行了这个命令。
$> ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
这也是* .html文件中的索引方法,也存在于llvm2.9 / docs中。我发现了这个,因为当我按某个类的ctrl-]时,它转到了html文件。
如何强制ctags单独使用.cpp / .h文件或忽略特定目录。
由于
答案 0 :(得分:22)
您可以使用排除文件类型
--exclude=*.html
答案 1 :(得分:16)
如果您需要排除的不仅仅是.html文件:
您无法用逗号分隔排除选项中的列表。这不起作用:
ctags --exclude=*.html,*.js ./*
但是,您可以传递多个排除选项:
ctags --exclude=*.html --exclude=*.js ./*
传递-V选项以帮助调试:
ctags -V --exclude=*.html --exclude=*.js ./*
给出输出:
Reading initial options from command line
Option: --exclude=*.html
adding exclude pattern: *.html
Option: --exclude=*.js
adding exclude pattern: *.js
答案 2 :(得分:4)
vim中最简单的方法是
:!ctags {.,**}/*.{cpp,h}
说明:大括号扩展为
:!ctags ./*.cpp **/*.cpp **/*.h **/*.h
因此它在当前目录(
./
)或任何嵌套目录(**/
)中查找源文件或头文件。注意**/
与当前目录不匹配(它始终匹配至少1个子目录级别)
在shell中:
find -iname '*.cpp' -o '*.h' -print0 | xargs -0 ctags
说明:以递归方式查找当前目录下的所有.cpp和.h文件,并在命令行上将它们传递给
ctags
。
print0
和-0
一起工作的方式是确保它与奇怪的文件名(例如包含空格甚至换行符)一起正常工作
我将留下其余的ctags选项以供您自己想象:)
PS。对于最近的bash-es,您可以使用
shopt -s globstar
ctags {.,**}/*.{cpp,h}
并获得与vim相同的行为!
答案 3 :(得分:2)
我不想跟踪可能在大型项目中处理的每个文件类型,而我只对Python感兴趣,因此我明确地只使用ctags --languages=Python ...
处理python文件。可以使用ctags --list-languages
查看语言名称列表。