我最近开始在我的项目中使用 ctags。我目前有以下设置:
root/tags [contains all non-static tags]
root/foo/tags [contains static tags for the foo directory]
root/bar/tags [static]
root/something/else/tags [etc.]
...
我可以set tags=./tags,tags,/path/to/root/tags
,而且一切都很完美。
但是,我的问题是我同时处理多个项目,因此我同时拥有 、/path/to/root1
和/path/to/root2
所有/path/to/root3
项目。我不想每次打开文件时都手动设置标签;有什么方法可以/path/to/rootX
根据我正在编辑的文件添加标签?(即,如果我正在编辑/path/to/root3/foo/x.c
,请使用root3/tags
?
就我而言,我所有的项目都共享一个共同的父目录;我真正想要的是:
set tags=./tags,tags,substitute("%:p:h", "\(^\/path\/to\/.*/\).*$", "\1", "")
但我似乎无法获得正确的 vimfu 来使其工作。
编辑:我刚刚意识到这行不通;我实际上无法写信给root*
. 相反,我想将我的主 ctags 文件存储在 中~/ctags/root*/tags
,其中的子目录~/ctags/
和/path/to/
[对于那些可能想知道的人,这些是 ClearCase UCM 动态视图;既不/view/XXX/
也不可/view/XXX/vobs/
写]