zsh提示符中的git信息会降低使用体验吗?

时间:2013-01-21 19:39:38

标签: git zsh prompt

我正在尝试在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是整个推广。

2 个答案:

答案 0 :(得分:0)

根据git存储库的大小以及vcs_info插件运行多少个不同的命令来生成提示数据,在提示中提取信息可能会非常慢。我在shell提示符中不使用oh-my-zshvcs_info插件,并且获取git info大约需要一秒钟来获取当前分支,暂存更改和脏更改。

答案 1 :(得分:0)

您的提示很慢,因为您在precmd挂钩中检查了git存储库状态。

只有在更改git信息时,即更改目录(chpwd挂钩)或运行git命令时,才能更快地更新提示。

虽然这不是一件容易的事,但是zsh插件zsh-git-prompt非常有用。请注意,它需要Python。