如何禁用特定存储库的 vcs_info?

如何禁用特定存储库的 vcs_info?

vcs_info像这样启用:

autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' formats '(%b)'

set_prompt() {
    vcs_info

    print -n "[%~]${vcs_info_msg_0_}%# " # Directory and VCS info (if any).
}

PROMPT=$'$(set_prompt)'

这很好用,但我最近创建了$HOME一个 git 存储库来更好地管理我的点文件,所以现在每次工作目录/home/martin或子目录没有自己的 git 存储库时,它都会打印/home/martin存储库的分支名称。

我想忽略 中的存储库/home/martin,但是不是任何其他,例如/home/martin/code/project.我尝试使用disable-patterns

zstyle ':vcs_info:*' disable-patterns "${(b)HOME}/(|/*)"

但这会在太的子目录中禁用 git repos $HOME,这不是我想要的。

我尝试用以下方法禁用它:

zstyle ':vcs_info:git:*:martin' enable NONE

但这似乎没有任何效果。我也尝试过清空消息:

zstyle ':vcs_info:git:*:martin' formats ''

现在我的提示是[~]a:%,所以我将其设置为零宽度空格:

zstyle ':vcs_info:git:*:martin' formats "\u200b"

这似乎有效;但这似乎有点黑客。

如何禁用vcs_info特定存储库?

答案1

以下作品

zstyle ':vcs_info:*:*:martin' formats "%0.0r"

在本例中,%0.0r说明符表示使用存储库名称,但将其显示为 0 宽度字符串。

参见zshz格式实用程序,因为这就是格式所使用的。

相关内容