目标
不折腾,本着实用的原则,装一个zsh,并使用oh-my-zsh的配置,让它看上去跟mac差不多,使用体验也差不多。
电脑是用来用的,不是用来折腾的,一切对于效率提升没有帮助的美化,都是耍流氓,有这功夫还不如出去撩撩妹,和现实中的朋友面对面聊聊天,比对着电脑打字有意思多了。
对比
我之前使用mac工作的,不得不说,各种体验确实很好,也有了一些使用习惯。现在突然换到win10,还真是有点不适应。为了装一个类似mac的终端,我花了点时间学习了一下win10,可用的工具很多,但都没有zsh用着顺手,简单总结如下:
powershell
win10自带,装了powerline字体后,并启用utf-8支持,继续安装oh-my-posh,再配合conemu,可以让它长得很好看,但是没有zsh,没有git alias,git log时中文乱码,与vim集成时各种诡异的bug。
cmd
除了启动比powershell快,没有啥其他特点了。
cygwin
Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
很多人在windows上都会推荐这个,确实,应该是最好用的linux shell了,但是在尝试cygwin的时候,我已经配置好了我的终端环境,所以就没有细细研究。网上已经有很多关于cygwin的配置和美化方式,我就不再赘述了。
wsl
这是我觉得win10上最好的功能之一,这是一个除虚拟机之外,windows上最真实的linux环境了,用来做测试、编译等,真的时非常棒。但是如果用作日常shell,它确实有几个问题让我感觉不太顺手。
- 部分功能不能和windows共享。比如java,windows上安装后,wsl里也得安装,二者不通用,类似的还有node、vim、git等。
- 用户主目录与windows不一致,各种profile不能共享。虽然通过定制用户主目录可以解决,但修改后仍然会有诡异的问题,主要集中在文件权限上。
- git下文件格式不一致。如果在wsl中安装了git,windows上也安装了git bash,并且代码在windows上的某个目录下,那么在wsl下使用git status时,会出现所有文件都已被修改的情况,估计是windows和linux的换行符不一致导致。
git bash
这是我觉得windows下最实用的终端工具了,wsl的各种问题在git bash下都不存在,除了没有包管理工具,长得寒碜点,没啥缺点。
babun
初次使用,有种惊艳的感觉,开箱即用,什么oh-my-zsh、git、vim、包管理,一应俱全,啥都有,要说唯一不足,安装文件太大,启动速度太慢,开个babun,可以强制自己喝口水,上个厕所。
Git for Windows SDK
这是我想推荐的一款软件,相当于git bash的加强版,通过pacman进行包管理,补充了git bash的不足。官方网站:https://gitforwindows.org/
安装
官网默认下载的是git bash,拖动滚动条到页面的最低端,可以看到git for windows sdk的下载连接:
点击下载,会得到一个3M多的自解压exe:git-sdk-installer-1.0.7-64.7z.exe
双击文件,选择解压目录
解压缩后会自动开始安装,安装过程实际上就是从git上把文件下载到本地,对于国内用户,可以先设置好代理。
全部文件下载完成后,是这个样子
双击mingw64.exe,进入git for windows sdk
在桌面上创建一个快捷方式,在命令行窗口下,输入
sdk create-desktop-icon
这样就创建了桌面快捷方式,这种方法有个弊端,就是打开git for windows sdk后,默认是根目录,不是用户主目录,如果想打开后自动是用户主目录,可以修改刚刚创建的快捷方式
修改字体是必不可少的工序,首推 DejaVu Sans Mono for Powerline
至此,git for windows sdk安装完毕,看上去和git bash是一样的,但是增加了pacman包管理,有了pacman,我们就可以安装各类linux工具了。
简单配置
默认界面虽然能用,但有了pacman的加持,可以通过安装zsh和tmux,得到更好的体验。
安装zsh和oh-my-zsh
pacman -S zsh
oh-my-zsh的安装请参考官方网站:https://github.com/robbyrussell/oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
全部安装完成后,输入zsh,即可看到熟悉的界面了
安装tmux
由于git for windos sdk和git bash默认是单窗口应用,没有tab页,这可以通过tmux来解决。
pacman -S tmux
安装完成后,输入 tmux,进入tmux界面,再输入zsh,即可愉快的使用git for windows sdk了
在工作到一半需要离开的时候,可以直接关掉git for windows sdk窗口,下次再打开后,直接输入 tmux a,即可接着之前的工作继续进行,方便。
tmux的一个小坑
tmux安装完成后,打开vim,会发现很别扭,颜色不对
解决方法:https://unix.stackexchange.com/questions/1045/getting-256-colors-to-work-in-tmux
原因在上面的链接里已经详细说了,简单讲,启动tmux的时候,输入:
tmux -2
这样再启动vim的时候,颜色就正常了
总结
cygwin其实也能实现,也许比git for windows sdk更简单,更方便,只不过我没有时间再继续对比和研究了,cygwin很成熟,网上有很多教程可以参考。
而git for windows sdk相关的文章却不多,所以我就花时间研究了下。还有另外一种方法,直接修改 /etc/profile.d/git-prompt.sh ,我觉得有点麻烦,并且还需要配置profile实现各种oh-my-zsh下的alias,不如直接安装zsh和oh-my-zsh省事儿。
目前我只是轻度使用,尚未发现问题,随着使用的深入,肯定会遇到问题,到时我会持续更新此文。