我正在尝试在zsh配置的RPROMPT
中设置git信息。
# precmd hook
function precmd {
vcs_info 'prompt'
if [ -z "$vcs_info_msg_0_" ]; then
RPROMPT=''
else
RPROMPT=$POWERLINE_COLOR_FG_WHITE$'\u2b82'"%f$POWERLINE_COLOR_BG_WHITE $POWERLINE_COLOR_FG_GRAY"$'$(git_prompt_info)'""$'$(git_prompt_ahead)'" $POWERLINE_COLOR_FG_GRAY"$'\u2b82'"%f%k$POWERLINE_COLOR_BG_GRAY$POWERLINE_COLOR_FG_WHITE "$'$(git_prompt_short_sha) '"%f%k"
fi;
}
这对我很有用,但每当我在git存储库中时,提示变得非常迟缓且不负责任。目前还不清楚为什么当我看到很多人在他们的zsh配置中使用git提示时就是这种情况。我做错了吗?
Here是整个推广。
答案 0 :(得分:0)
根据git存储库的大小以及vcs_info
插件运行多少个不同的命令来生成提示数据,在提示中提取信息可能会非常慢。我在shell提示符中不使用oh-my-zsh
或vcs_info
插件,并且获取git info大约需要一秒钟来获取当前分支,暂存更改和脏更改。
答案 1 :(得分:0)
您的提示很慢,因为您在precmd
挂钩中检查了git存储库状态。
只有在更改git信息时,即更改目录(chpwd
挂钩)或运行git
命令时,才能更快地更新提示。
虽然这不是一件容易的事,但是zsh插件zsh-git-prompt非常有用。请注意,它需要Python。