1

我正在尝试在RPROMPT我的 zsh 配置中设置 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 提示时,不清楚为什么会出现这种情况。难道我做错了什么?

是整个提示。

4

2 回答 2

0

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

chpwd您可以通过仅在 git 信息发生更改时(即更改目录(挂钩)或运行git命令时)更新提示信息来加快提示速度。

虽然这不是一件容易的事,但有一个 zsh 插件zsh-git-prompt可以很好地工作。请注意,它需要 Python。

于 2013-02-20T06:09:52.873 回答
0

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

于 2013-01-21T20:09:56.637 回答