背景
对于用惯了 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
本站由以下主机服务商提供服务支持:
喝点牛奶
666,大佬牛逼,找到最靠谱的了。其他都不行,圆满。
Mosaic-C
我也只是碰巧试了下😄
炎寒
写的很详细,谢谢啦
Mosaic-C
不用客气,能帮到就好~
zeromake
可以试了下这个非常给力,我还按这个思路找到了方法把 `pacman` 装上了,直接把 git-windows 变身 git-windows-sdk 了。
Mosaic-C
哈哈,聪明
张三
安装好后在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
感谢!我也遇到了层主的字符乱飘问题,通过你的方法解决了!
Larry
牛逼
test
老哥稳