Я недавно начал использовать 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
, где есть отображение 1: 1 между подкаталогами ~/ctags/
и /path/to/
[Для тех, кому интересно, это DynamC ClearCase UCM dynamicвиды; ни /view/XXX/
, ни /view/XXX/vobs/
не доступны для записи]