抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

install zsh with git-bash on Windows 10

背景

对于用惯了 mac 以及习惯了 zsh-autosuggestions 的我来说,windows的命令行简直不能忍,WSL2又充斥着各种艰难险阻,无奈之下,git bash成最佳解决方案,于是我试想能否实现zsh on git bash。

这个世界终结(jiu)是美好更多一点。经过一些艰难险阻,也算是可以用了。

步骤

  • 安装git bash for windows

传送门:https://gitforwindows.org/

无需多想,just next. wait for a moment ~ Everything will be OK

  • 下载 zsh for wsl

没错,就是捡漏,且用且珍惜,传送门:

https://packages.msys2.org/package/zsh?repo=msys&variant=x86_64

下载后解压到 Git 安装的根目录,相当于对git bash做一个补充包。然后打开一个git bash,敲下zsh,你会发现不行,没错,就是不行。

关键步骤

在Git目录下,找到usr\bin,由于直接从压缩包解压过去,所以会有以下三个文件被新添加。

我们改一下,删除0kb的那个,将10kb的文件zsh-5.8.exe直接改为zsh

这样的话,是不是就有点像 shell 的感觉了?新开一个 git bash,敲一下 zsh ,回车!!!

熟悉的zsh默认主题回来了,没错,要的就是这个感觉。

配置 Oh My Zsh

这个差点漏了,一键式安装,传送门:https://ohmyz.sh/#install

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

配置默认启动 zsh

修改~/.bashrc,然后追加内容:

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

之后新建 git bash 都会是zsh了。

插件篇

zsh-autosuggestions

fast/unobtrusive autosuggestions for zsh. zsh 上一个快速的顺眼的自动建议插件(实际上就是将历史命令呈现出来)传送门:https://github.com/zsh-users/zsh-autosuggestions

安装:

cd ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

配置插件:

vi ~/.zshrc

默认插件已经有了git,所以这里新增插件,用空格隔开:

更新 .zshrc 配置文件,或者新建终端:

source ~/.zshrc

更改 zsh-autosuggestions 提示颜色:

主要是在 ~/.zshrc 文件中新增/修改 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE 字段的配置,详细的直接参考官方文档:

https://github.com/zsh-users/zsh-autosuggestions#suggestion-highlight-style

在 Windows 上提示高亮与输入一致无法区分,所以我一般比较简单,改改颜色:

ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#9e9e9e'

主题篇

对于大佬级别的,直接上自定义:

终端颜色配置:https://github.com/altercation/solarized

终端颜色在线配置:http://ciembor.github.io/4bit/

对于我这种图方便的: powerlevel10k ,传送门:https://github.com/romkatv/powerlevel10k

p10k 在 Windows 上缺少字体,所以需要安装推荐字体:https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k

配置完在 git bash 右键选项中配置字体:

p10k 第一次 source zshrc 时会提示配置,但如果觉得第一次的配置不合适,之后可以重新配置:

p10k configure

p10k 的路径省略(只显示最后一个文件夹),编辑~/.p10k.zsh 找到下面这行,把参数改下即可:

typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last

PS:这个配置我找了老半天,以前印象中是默认的。。

其他

此外,别名alias,或者其他主题/插件,都和mac/linux一致去配置即可。

附件

SHA256:0b3804dffc84ef7a936a6ddba4c13843e9cea7ec918e2bb874e228bb2c22b39c

附上文中版本(因无法上传原格式,所以再压了一层7z,自己备份),因为一旦更新似乎就找不到历史版本,存着,毕竟也没更新的必要。

参考:

https://gist.github.com/fworks/af4c896c9de47d827d4caa6fd7154b6b


本站由以下主机服务商提供服务支持:

12条评论

  • 喝点牛奶

    666,大佬牛逼,找到最靠谱的了。其他都不行,圆满。

  • zeromake

    可以试了下这个非常给力,我还按这个思路找到了方法把 `pacman` 装上了,直接把 git-windows 变身 git-windows-sdk 了。

  • 张三

    安装好后在windows terminal和vscode中使用git bash会乱码,博主有这种情况吗?

    • Mosaic-C

      我这边不会,可以从字体编码方向考虑,主要是输出的程序的编码和终端是否匹配,比如如果你终端是 utf-8,但你用于输出的程序是 GBK,那么就会乱码。另外就是字体,终端使用的字体是否支持中文(主要是说vscode)。
      — 另外不知道为何你的评论会被相关插件识别为垃圾,以至于我没看到,今天才回复,不好意思。

      • 张三

        没事。谢谢你的回复。我设置过utf-8,然后测试发现安装了zsh的插件输入打字过程中就乱码,不用插件就没问题,最终放弃在win上使用zsh了,安装zsh就是想使用插件😂

        • 李四

          使用这个版本 的补全插件 git checkout tags/v0.6.4 -b v0.6.4-branch

          • Ancho

            感谢!我也遇到了层主的字符乱飘问题,通过你的方法解决了!

发表评论