之前使用 oh-my-zsh 的自带 git/nvm 等插件有时候有性能问题,同时据说其框架本身相比其他一些主打速度的配置框架 (prezto/zimfw 等) 也会慢一点。

稍微折腾了一下,使用 zimfw 作为 zsh 配置框架,它在速度和可配置性间达到了很好的平衡。

个人切换后,试了下跑 zprof,启动时间只有原先使用 oh-my-zsh 时的一半,且没有明显感觉缺失常用功能,度量方式参考 Profiling zsh startup time。

安装
按照项目 README 中的安装指南跑一遍就好,不超过一分钟。

插件加载
用上自带的模块和 zsh-users 里一些优秀的插件,就已经有很好的表现,其中 zsh-users/zsh-autosuggestions 和 zsh-users/zsh-syntax-highlighting 能让 zsh 也有类似于 fish 一样友好的代码高亮反馈和输入自动补全功能。zimfw 比较友好的一点就在于:默认配置(使用其提供的安装脚本)里给出的组合就已经很棒了。

添加插件的方式与 oh-my-zsh 不太一样,后者需要把插件添加到指定的 plugins 目录(一般为 clone repo 或者拷贝文件),然后在 .zshrc 文件里 plugins=() 数组里添加插件名。

而 zimfw 的方式则稍微方便一点,除了类似后者的方式外,还可以不用手动操作目录而是在 .zimrc 文件中添加模块名(一般为 github 上的 user/repo 名),可在 awesome-zsh-plugins 里寻找合适插件,多数与配置框架无关(可以不局限在 oh-my-zsh 提供的插件目录里)。

修改配置文件后,使用命令 zimfw install 下载并编译插件(会使用 zsh builtin 的 zcompile 将 .zsh 文件编译为 .zwc 字节码,提高下次加载的速度),打开新 shell 时新插件生效。

升级插件也很简单,zimfw update 即可,安装完成会列出升级了插件新增的 git commits。