Hi,
I've recently started using ctags on my projects. I currently have the following setup:
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.]
...
I can set tags=./tags,tags,/path/to/root/tags
and everything works perfectly.
However, my problem is that I work on several projects at once, so I have, for example, /path/to/root1
, /path/to/root2
, and /path/to/root3
all at once. I'd rather not manually set the tags each time I open a file; is there any way I can have tags to to the /path/to/rootX
based on the file I'm editting? (i.e., if I'm editing /path/to/root3/foo/x.c
, use the tags in root3/tags
?
In my case, all of my projects share a common parent directory; what I really want is something like:
set tags=./tags,tags,substitute("%:p:h", "\(^\/path\/to\/.*/\).*$", "\1", "")
but I can't seem to get the right vimfu to make it work.
EDIT: I just realized that this won't work; I can't actually write to root*
. Instead, I'd like to store my main ctags file in ~/ctags/root*/tags
, where there's a 1:1 mapping between the subdirectories of ~/ctags/
and /path/to/
[For those who may be wondering, these are ClearCase UCM dynamic views; neither /view/XXX/
nor /view/XXX/vobs/
is writable]