.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) 之间似乎存在差异
我正在使用以下方法在我的存储库的 .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) 之间似乎存在差异