2012-08-04 96 views
2

我正在使用vcs_info在我的提示中添加有关git的信息。我已经配置:ZSH提示不显示git unstaged文件

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_}$ ' 

现在,我有一个混帐回购协议与电流的变化,即分阶段和不分阶段的文件:

# 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上。

回答

2

我认为你的.zshrc可能是好的。

您的存储库文件“a”正在上演。所以zsh显示“!”按预期提示。但是文件“b”只是没有跟踪。未追踪!=未分期。因此,“?”没有显示。

+0

我想你完全误解了我的问题。我只想知道为什么我的zsh没有显示?即使有未分期的文件。 – Sebi 2012-08-06 18:34:11

+0

您的存储库文件a正在分阶段进行。所以显示“!”在提示。还行吧。但是文件b没有被跟踪。未追踪!=未停用。所以不显示“?”。 – 2012-08-06 20:29:37

+0

好吧,我明白你要去哪里。我误解了vcs_info在未跟踪文件的情况下会给我什么。所以基本上它缺少未跟踪文件的占位符:-)我将编辑你的答案并接受它。 – Sebi 2012-08-07 12:05:14