使用 WSL2 和 zsh 自动完成速度慢 git

Slow git autocomplete with WSL2 and zsh

我最近在 windows 从 git bash 切换到几乎完全使用 WSL2。

我遇到的问题是我的标签自动完成分支非常慢(在几秒钟内)。其他自动完成速度很快,例如自动完成 git 命令(git checko[TAB] 会自动完成结帐而不会出现问题)。

我能做些什么来隔离或解决问题(不到 1 秒自动完成)?

为了自动完成分支,bash 必须解析 .git/refs 目录或 .git/packed-refs 文件中的文件,其中存储了 branch/tag 名称。

如果您的存储库存储在 windows 分区上,这可能是它运行缓慢的原因,因为目前已知 windows/linux 文件系统互操作速度较慢。

为了加快分支名称自动完成的速度,您可以将存储库移动到 linux 分区。如果那不是一个选项,您可以编写自己的自动完成脚本来避免与 windows 文件系统的 IO。

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

禁用oh-my-zshgit提示魔法。

根本原因是 WSL 使用慢速 9P 协议访问 Windows 驱动器。
参考。