我只是想通过使用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 ..
可以让我回到不是git repo的dev
目录,提示应该显示为:hostname:username @ dev $
我的经历:
提示从未自动更改/更新;当我更改目录时,我必须运行source ~/.zshrc
才能使提示更新。
我尝试过的:
我尝试将precmd()
块更新为以下内容:
precmd() {
vcs_info
echo "This has been executed"
}
我看到在每个提示符之前都有 This has been executed
,因此我知道 precmd 块被正确执行了。似乎 vcs_info
没有起作用。
也许我漏掉了什么;有人能指出可能的问题吗?谢谢!
precmd
方法里面。 - Raul Rene