osx mojave上的zsh无法更新vcs_info

时间:2019-06-04 18:03:23

标签: terminal command-prompt zsh

我在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_}"

我希望:

  1. 我加载终端并从~(主目录)开始。 zsh提示应显示为

    hostname:username @ user $

  2. cd dev/repo带我进入git repo,zsh提示符应显示为

    hostname:username @ repo $ (master)

  3. 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不能正常工作。

也许我错过了一些东西;有人可以指出这个问题可能是什么?谢谢!

1 个答案:

答案 0 :(得分:2)

几个月后,在没有真正关心的情况下,偶然发现了它。提示必须使用单引号而不是双引号。

PROMPT='%F{226}%m:%n @ %F{214}%1d %F{226}\$%f ${vcs_info_msg_0_}'