使用 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 驱动器。
参考。
我最近在 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 驱动器。
参考。