Я использую 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, либо где-то у меня опечатка. Я на зш 4.3.17.