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,不过加上了很多自己的修改。

最后修改:2021 年 02 月 17 日 06 : 49 PM