.git/tags 文件的 vimrc 标签选项规范

vimrc tags option specification for .git/tags files

我正在使用以下方法在我的存储库的 .git 目录中填充标签文件:

https://tbaggery.com/2011/08/08/effortless-ctags-with-git.html

因此,对于任何给定的 git 存储库,我都会在其中包含一个 .git/tags 文件。如何配置我的 tags 选项以递归地从存储库中的当前目录查找这些标签文件?

我目前有这个:

set tags^=./.git/tags,*/.git/tags;~

据我了解,应该查找 ./.git/tags,如果存在,则使用它。否则,它将进入 one 目录并在那里寻找 .git/tags。如果失败,它将上升到 两个 目录,依此类推,一旦到达我的主目录 (~) 就会停止。

在我混合了另一个 git 存储库之前,这似乎一直有效。我发现如果我在 $HOME 有两个回购协议:

~/my_repo_2910
~/my_repo

如果我在 ~/my_repo,一切正常。也就是说,标签解析通过 ~/my_repo/.git/tags 发生。但是,如果我在 ~/my_repo 的子目录中,比如 ~/my_repo/dir,那么 运行 我的标签命令将解析为 ~/my_repo_2910 中的文件。我不确定这怎么可能,但通过 :tag 查找意外跳转回购协议对我来说非常危险。

显然我没有正确设置 tags 选项。谁能指出我做错了什么。


更新

如果我按照此处的说明将 CentOS 7 vim 更新到版本 8,那么 Knoble 的回答对我有用: https://vi.stackexchange.com/a/21697/25433

那么他的标签规范对我来说很好。

随着最近的逃犯更新,我不得不修复我的标签设置(逃犯不再设置标签)。

我现在有这条线:

set tags^=.git/tags;~

注意缺少 * 通配符


正如评论中所说,我的版本(macOS 上的 8+)和 OP 版本 (7.4 RHEL) 之间似乎存在差异