我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格式实用程序,因为这就是格式所使用的。