我最近开始在我的项目中使用ctags。我目前有以下设置:VIM中用于多个项目的标签路径
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", "")
但编辑:我只是意识到,这将无法正常工作;我实际上不能写入root*
。相反,我想存储我的主要ctags文件在~/ctags/root*/tags
,其中~/ctags/
和01的子目录之间存在1:1的映射[对于那些可能想知道的,这些是ClearCase UCM动态视图;既不/view/XXX/
也不/view/XXX/vobs/
可写]