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が何を出力するかを誤解したか、どこかにタイプミスがあるはずです。私はzsh4.3.17を使用しています。

4

1 に答える 1

4

あなたの.zshrcはおそらく大丈夫だと思います。

リポジトリのファイル「a」がステージングされます。したがって、zshは「!」を表示します 期待通りにプロンプ​​トで。ただし、ファイル「b」は追跡されていないだけです。追跡されていない!=ステージングされていない。したがって、 "?" は表示されていません。

于 2012-08-06T00:08:27.337 に答える