ZSH提示符未显示git未暂存的文件

4
我正在使用vcs_info将有关git的信息添加到我的提示符中。我已经配置好了:
setopt promptsubst                
autoload -Uz vcs_info             
zstyle ':vcs_info:*' enable git   
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' stagedstr '!'
zstyle ':vcs_info:*' unstagedstr '?'                                           
zstyle ':vcs_info:*' formats '[%b]%c%u'
...
PROMPT='${vcs_info_msg_0_}$ '

现在,我有一个包含当前更改的git仓库,即一个已暂存和未暂存的文件:
# On branch test
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   a
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       b

然而,我的提示忽略了未暂存的文件,只显示已暂存文件的!。它的样子如下:
[test]!$

我可能误解了%u应该输出的内容,或者在某个地方打错了字。我使用的是zsh 4.3.17。

1个回答

4

我认为你的.zshrc文件可能是可以的。

你的代码库中的文件"a"已经被暂存,所以zsh会如预期地在提示符中显示"!"。但是文件"b"只是未跟踪,未跟踪并不等同于未暂存。因此,"?"不会显示。


我认为你完全误解了我的问题。我只是想知道为什么我的zsh没有显示?即使有未暂存的文件。 - Sebi
你的代码库中,文件a已经被暂存(staged),所以在提示符中显示为“!”这是正常的。但是文件b是未跟踪的(Untracked)。未跟踪(Untracked)并不等同于未暂存(Unstaged),因此不会显示“?”符号。 - Tomohiro Urakawa
好的,我明白你的意思了。当出现未被跟踪的文件时,我误解了vcs_info将为我提供什么信息。所以基本上它缺少了未被跟踪文件的占位符 :-) 我会编辑你的回答并接受它。 - Sebi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接