Я работаю в OSX Mojave и использую zsh в качестве терминала для входа в систему - я использую приложение Terminal.
Я просто пытаюсь показать текущую ветку репозитория git, в котором я нахожусь (еслидоступно) с помощью vcs_info
.Соответствующая часть моего .zshrc
файла выглядит следующим образом:
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' formats "%F{010}(%b)%f "
precmd() { vcs_info }
setopt prompt_subst
PROMPT="%F{226}%m:%n @ %F{214}%1d %F{226}\$%f ${vcs_info_msg_0_}"
Я ожидаю:
Я загружаю терминал и начинаю с ~
(домашнийкаталог).Приглашение zsh должно читать
hostname:username @ user $
cd dev/repo
переводит меня в репозиторий git, приглашение zsh должно читать
hostname:username @ repo $ (master)
cd ..
возвращает меня к dev
, который не является git-репо, подсказка должна читать
hostname:username @ dev $
У меня возникает:
Приглашение никогда не изменяется / обновляется автоматически;Мне нужно запустить source ~/.zshrc
, чтобы выполнить быстрое обновление при смене каталогов.
Что я пробовал:
Я пытался обновить блок precmd()
следующим образом:
precmd() {
vcs_info
echo "This has been executed"
}
И я вижу This has been executed
прямо перед каждым запросом, поэтому я знаю, что блок precmd вводится правильно.Кажется, что vcs_info
просто не работает.
Возможно, я что-то упустил;кто-то может указать, в чем проблемаСпасибо!