我正在使用一个非常大的代码库,我发现选择包含哪些目录用于Exuberant Ctags是有用的.
该--exclude选项适用于消除单个文件和目录名称(使用全局通配符),但我无法弄清楚如何排除包含多个目录的路径模式.
例如,我可能想要排除目录tests,但仅在处理时thirdparty\tests(在Windows下).问题是如果我只是使用--exclude=tests我排除太多目录,包括我正在积极处理的代码中的测试目录.
以下是我尝试过的一些事情:
--exclude=thirdparty\tests
--exclude=thirdparty\\tests
--exclude=*\thirdparty\tests
--exclude=*\\thirdparty\\tests
--exclude=thirdparty/tests
Run Code Online (Sandbox Code Playgroud)
Ctags默默地忽略了所有这些,如检查标签文件所证明的那样.
如何仅在目录父目录之前排除目录?
添加:
这是我的ctags --version输出:
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Jul 9 2009, 17:05:35
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +win32, +regex, +internal-sort
Run Code Online (Sandbox Code Playgroud)
sar*_*old 16
在某些时候,可能更容易定义您想要编入索引的文件列表; 将该列表保存到文件,并使用ctags -L <filename>索引只选择少数.
这允许您使用find(1)修剪您不想索引的目录,例如:
find . -path ./Documentation -prune -o -print > indexme
Run Code Online (Sandbox Code Playgroud)
将跳过所有子目录中的所有文件./Documentation.
ack -f | ctags -L -
Run Code Online (Sandbox Code Playgroud)
ack将列出给定目录中的源文件.您可以使用ack -f --ruby或将范围限制为特定语言ack -f --type=ruby.您也可以将dirs排除在外--ignore-dir.
使用ack --dump看到内置的文件类型ACK.
| 归档时间: |
|
| 查看次数: |
10227 次 |
| 最近记录: |