J'ai récemment commencé à utiliser ctags sur mes projets. J'ai actuellement la configuration suivante:Chemin pour les tags dans VIM pour plusieurs projets
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.]
...
je peux set tags=./tags,tags,/path/to/root/tags
et tout fonctionne parfaitement.
Cependant, mon problème est que je travaille sur plusieurs projets à la fois, donc j'ai, par exemple, /path/to/root1
, /path/to/root2
, et /path/to/root3
en même temps. Je préfère ne pas définir manuellement les balises chaque fois que j'ouvre un fichier; Y at-il une manière que je peux avoir des étiquettes au /path/to/rootX
basé sur le dossier que je édite? ? (Par exemple, si je suis d'édition /path/to/root3/foo/x.c
, utilisez les balises dans root3/tags
Dans mon cas, tous mes projets partagent un répertoire parent commun, ce que je veux vraiment quelque chose comme:
set tags=./tags,tags,substitute("%:p:h", "\(^\/path\/to\/.*/\).*$", "\1", "")
mais Je ne peux pas sembler obtenir le bon vimfu pour le faire fonctionner
EDIT: Je viens de réaliser que cela ne fonctionnera pas, je ne peux pas réellement écrire à root*
. Au lieu de cela, je voudrais stocker mon principal ctags fichier dans ~/ctags/root*/tags
, où il existe un mappage 1: 1 entre les sous-répertoires de ~/ctags/
et /path/to/
[Pour ceux qui peuvent se demander, ce sont des vues dynamiques ClearCase UCM; ni /view/XXX/
ni /view/XXX/vobs/
est éditable]