Windows下想找一个好用的终端真的太难了。这里指的是本地用的终端,至于SSH远程那就是纯正的Linux环境了,体验都差不多。
我觉得我的要求也不高啊,能用*NIX命令,中文没有乱码,最好能有Tab自动补全。
我用过的那么多终端,没有一款能满足的这两条基本要求。对比一下这些终端的优缺点吧。
WSL不在此文讨论之列,因为和Windows之间的联动不是很舒服
- 类UNIX:使用UNIX一些命令,比如ls、grep、awk等;
- 中文支持:中文显示正常,没有乱码;
- 等宽字体:等宽字体显示正常;
- Tab:按下Tab可以自动补全;
- 路径:真实表示原生使用Windows路径,虚拟表示C盘D盘等是虚拟的,比如
/cygdrive/c
。
终端 | 类UNIX | 中文支持 | 等宽字体 | Tab | 路径 |
---|---|---|---|---|---|
ConEmu | 一般 | 有乱码 | 一般 | Clink插件 | 真实 |
Cmder | 一般 | 有乱码 | 一般 | Clink插件 | 真实 |
Windows Terminal | 差 | 完美 | 完美 | Git支持较好 | 真实 |
MobaXterm | 完美 | 有乱码 | 完美 | 完美 | 虚拟 |
GitBash(MINGW) | 完美 | 完美 | 完美 | 完美 | 虚拟 |
ConEmu & Cmder
ConEmu和Cmder其实是一个东西,Cmder也是基于ConEmu深度定制的东西。我实际使用感觉Cmder启动太慢了,因此用了ConEmu自己定制。这个终端很古老了,现在用起来经常遇到稀奇古怪的问题。
比如使用MySQL的时候,如果你按下Ctrl+C,你的提示符就会变得很奇怪。
然后就是*NIX
命令的支持,其实就是把GitBash自带的一些工具,加入了环境变量。因为默认是加到%PATH%
末尾,所以优先使用Windows命令。为了最好的体验,一定要在配置里将nix_tools=2
,这样就会优先使用*NIX
命令。比如,我在使用Git统计提交者排名的时候,会使用到管道命令sort
,Windows自带一个,但是和Linux下的使用方式不一样,编码方式也不一样,如果是默认优先使用Windows命令,这里就会出现乱码或者参数错误的问题。
可能也就是Windows和类UNIX命令共存的原因,偶尔会出现中文乱码的问题。
ConEmu和Cmder在使用cmd的时候,都可以集成Clink插件,实现命令的自动补全,Cmder更是深度定制了Clink,使用起来更加等心应手。
Windows Terminal:
微软亲儿子,刚出来还是预览版的时候我就体验了,第一感觉就是时髦。在安装了oh-my-posh主题之后,颜值秒杀任何Windows终端。对于字体的支持也非常完美,就算不是等宽字体也能等宽显示。
本身还是Powershell,所以对类UNIX命令的支持就不是很好了。我尝试安装了Busybox,以及学习Cmder的逻辑加入环境变量,但是都没有什么改善。因为它默认带了很多的Alias,像ls
等命令,都优先使用别名了。
这个终端对于喜欢Powershell的用户来说是极其完美的,但我对Powershell不是很感冒。就拿命令补全来说,不论你输入什么,都给你补全路径。对于Git来说,可以通过posh-git来提升使用体验,堪称完美,其他就不敢恭维了。
Mobaxterm:
这个终端很多人推荐,被誉为宇宙最强也不为过。我也觉得名副其实,要不是有一点点的BUG,我几乎就只用它了。
首先是支持的协议非常齐全,SSH、SFTP、RDP、VNC、Mosh等等。其次,被吹爆的功能就是SSH和SFTP的联动,在终端里切换路径,可视化的界面也会更新。
对我来说最大的有点,对于类UNIX命令支持完美,而且可以通过apt安装很多的工具,命令补全几乎和Linux体验一样。
然后让我沮丧的唯一的缺点,中文有乱码,改了很多字符编码都没有改善,也不是全部乱码,而是个别字体它乱码!
GitBash(MINGW):
对UNIX支持良好,Cmder的类UNIX环境就是使用GitBash来模拟的。中文显示也没有什么乱码,要是缺点就是没有多标签,经常要开好几个窗口。
所以最终我决定还是使用Cmder,不过加上了很多自己的修改。