从目录递归包含ctags文件

时间:2012-10-16 14:17:30

标签: vim ctags

我正在成功使用带有Vim的Ctags。目前,我对标签的设置如下:

set tags=./tags;/

我有一个目录~/.ctags,其中包含以下文件:~/.ctags/rails~/.ctags/laravel等基本上为特定项目生成的ctags,我可能需要从我的其他项目中获取这些文件。

有没有办法,我可以告诉Vim包含所有这些文件用于ctags目的? 类似的东西:

set tags+=~/.ctags/*

有人还可以向我解释使用这种方法的优点和缺点v / s在一个文件中生成我的所有ctags(来自ruby,php,python等项目)吗?

此致

1 个答案:

答案 0 :(得分:3)

:help 'tags'解释说:

  

文件名本身不能包含通配符,它​​按原样使用。

因此,您需要在启动时显式添加所有标记:

for tagfile in split(glob('~/.ctags/*'), "\n")
    let &tags .= ',' . tagfile
endfor

或更改标记生成以将同名文件放在子目录中。然后,您可以使用*通配符将它们全部包含在内:

set tags+=~/.ctags/*/tags

我没有那么多标签,但我认为将它们分开是一个好习惯。毕竟,Vim确实支持多个标记文件位置。