我在OSX Mojave上,并使用zsh作为我的登录终端-我使用终端应用程序。
我只是想通过使用vcs_info
来显示我所在的git存储库的当前分支(如果有)。我的.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 repo,zsh提示符应显示为
hostname:username @ repo $ (master)
cd ..
带我回到dev
,这不是git repo,提示应显示为
hostname:username @ dev $
提示永远不会自动更改/更新;我必须运行source ~/.zshrc
才能在更改目录时进行提示更新。
我尝试将precmd()
块更新如下:
precmd() {
vcs_info
echo "This has been executed"
}
我在每次提示前都看到This has been executed
,所以我知道precmd块已正确输入。似乎vcs_info
不能正常工作。
也许我错过了一些东西;有人可以指出这个问题可能是什么?谢谢!
答案 0 :(得分:2)
几个月后,在没有真正关心的情况下,偶然发现了它。提示必须使用单引号而不是双引号。
PROMPT='%F{226}%m:%n @ %F{214}%1d %F{226}\$%f ${vcs_info_msg_0_}'