Windows 下的 zsh
写在前面
众所周知,Windows 官方并没有什么好用的 shell —— cmd 太过古老,而 powershell 又太慢。
第三方替代品也很多,比如旨在模拟 Linux API 的 Cygwin、msys/msys2 和 WSL1;亦或者重新实现的 POSIX shell,如 gsh。还有一些新兴的跨平台 shell,如 NuShell……
本文将介绍另一种邪术:在 Windows 上直接运行 zsh/fish。其实是利用了 Git for Windows 的 msys2 环境
某些 shell,宁可换一种语言重写,都不愿意做 Windows 的支持 😭
说的就是你,fish
How To
首先安装 git,在此推荐使用 scoop 管理 Windows 下的软件包。
1 | scoop install git |
接着再去下载 msys2 的 zsh,下载完成后解压 etc
和 usr
文件夹到 git 的安装目录中:
我们已经可以在 git bash 中启动 zsh 了:
此时已经拥有了一个完整的 shell 环境,像 zsh-autosuggestion
、zsh-completions
、zsh-syntax-highlighting
的 zsh 插件也可以正常使用。
实际上,git 提供了一个完整(并非完整)的 msys2 环境,几乎所有的 msys2 包都可以运行起来。只是由于缺少包管理器(如 pacman),我们得手动处理依赖关系。
后记
在测试过程中,也发现了一些不兼容的奇怪现象。比如,在开启 zsh-syntax-highlighting 后,输入时会出现“光标闪回”:
再比如,使用 vim 时会出现全屏闪烁的情况:
可能是 msys2 和 Windows Terminal 之间存在奇怪的兼容性问题(
于是我又用回了 clink + WSL 的组合(逃
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 arrio's blog!