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