我的 Git 存储库中的 Zsh 超级慢

我的 Git 存储库中的 Zsh 超级慢

我的 Zsh 在某个 Git 仓库中运行速度非常慢。当我在 Google 中搜索“zsh git slow”时,我得到了一堆关于 Git 的结果自动完成速度很慢,但自动完成不一定是我的问题;而是一切

我尝试删除所有插件,但奇怪的是,当我打开新 shell 时,它什么也没做。Zsh 仍然会在我的 Git 存储库中执行 Git 操作。

我发现这个片段这一页

function git_prompt_info() {
  ref=$(git symbolic-ref HEAD 2> /dev/null) || return
  echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}

这使得一切又变得快速,但它也给了我一个如下提示:

➜  snip git:(master

请注意缺少右括号。这有点蹩脚。另外,整个事情看起来就像是我不应该做的黑客行为。

还有这个看起来很有希望的 SU 问题,但是接受的答案上的链接已经失效了。

如何才能让我的 Zsh 在 Git 仓库中运行起来不慢?

答案1

您可以执行以下命令来完全禁用 git 状态功能。

git config --global oh-my-zsh.hide-status 1

或者将以下行添加到您的~/.zshrc.

DISABLE_UNTRACKED_FILES_DIRTY="true"

答案2

要跟踪在运行缓慢时调用的 shell 命令,您可以运行:set -x或将其添加到启动文件中。它将显示所有命令,包括负责自动完成的命令。

如果您认为某些git命令很慢,您可以定义一些额外的变量,例如:

exports GIT_TRACE=1

要查看更多示例,请参见:如何调试与 git/git-shell 相关的问题?

答案3

我已将其zsh-autosuggestions作为插件移除,然后速度就更快了。就我而言,这与 无关git

答案4

您可以尝试使用 确认速度缓慢的原因zprof。将其添加到您的~/.zshrc(或等效文件):

zmodload zsh/zprof

然后在每条命令后运行zprof以获取摘要。就我而言,是完全不相关的插件导致了速度缓慢。

相关内容