我只是试图通过使用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,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不起作用了。
也许我错过了什么,有人能指出问题的所在吗?谢谢!
发布于 2019-08-10 05:36:50
几个月后,在不太关心之后,偶然发现了.提示符必须使用单引号而不是双引号。
PROMPT='%F{226}%m:%n @ %F{214}%1d %F{226}\$%f ${vcs_info_msg_0_}'
发布于 2022-06-01 14:25:24
把整件事都放进内存中是有效的。
autoload -Uz vcs_info
precmd() {
vcs_info
# Format the vcs_info_msg_0_ variable
zstyle ":vcs_info:git:*" formats "(%b) "
echo -e -n "\x1b[\x33 q"
PROMPT="%B%1~ $%b %F{004}${vcs_info_msg_0_}%f> "
RPROMPT=" %F{005}%T%f"
}https://stackoverflow.com/questions/56449176
复制相似问题