【发布时间】:2014-02-04 18:48:17
【问题描述】:
我从事多个项目,每个项目大约 3-5 百万行代码。我在每个项目的根目录下都有一个标签文件。我还有一个在所有人之间共享的工具目录。
disk1
|
+--Proj A
|
+--Proj B
|
+--Shared
disk2
|
+--Proj C
|
+--Proj D
在使用标签时,我希望Vim先在我的项目根目录下搜索标签文件,然后在标签文件中搜索Proj X,再在Shared中搜索标签文件
我无法让 Vim 在 Shared 中找到标签文件
在我的 .vimrc 文件中:
set tags=tags;D:/Shared
set tags=tags;,D:/Shared(感谢 romainl 发现了一个缺少的逗号!)
但是 Vim 只搜索本地项目标签文件,而不是共享的。
tags; 应该从 CWD 开始并向后遍历树,直到找到标签文件(在项目级别找到正确的文件)。
D:/Shared 是一个显式路径,应该在该目录中找到标签文件,但没有找到(我已经检查过,它确实存在)。
我正在使用 Exuberand Ctags v5.8
【问题讨论】:
-
所以,我最终在磁盘的最根级别为共享组件创建了一个标签文件。这样
tags=tags;行为就可以找到它,因为它会一直向上遍历直到找到某些东西。但令人遗憾的是,我现在必须拥有共享标签文件的两个冗余副本,每个磁盘一份(磁盘 1 上的 Proj A 和 B,磁盘 2 上的 Proj C 和 D)——共享标签文件几乎是 1GB。我抱怨的不是空间(1GB 是花生),而是冗余......我觉得必须有更好的方法。