今天有三个异父异母的货色一字排开让我作出选择,他们分别是:Sublime,Atom,VSCode。 这是个问题,而且是要解决的一个问题。

在这个问题找上我的时候,让我想起了我之前所用过的编辑器,那就先说一下我的编辑器使用历程,就当作是回忆录吧。

Windows记事本

这个就不用多说了,用过Windows电脑的人基本都用过,该有的功能也都有了(我指的是打开,编辑,保存功能),短小精悍,真的就是个编辑器。 至于我什么时候开始使用真的是记不清了,太遥远的记忆了。

Dreamweaver

好吧,有些人可能说这也能算作编辑器?我不管,对我来说就是,而且还是真正意义上的第一款代码编辑器。

在大学期间,我接触到的第一个计算机语言是HTML,不是C,也不是VB。我不是计算机专业的,所以编程课程是排在最后的。 当时觉得网页挺神奇的,五颜六色的文字,色彩斑斓的图片,关键是还能动。于是就想着自己能不能也做个出来,耍一下酷。 后来就发现有这么个东西,基本不用去写什么枯燥的代码,鼠标托动托动点两下效果就出来了,简直就是个神器啊!

还好当时不是在计算机系,身边也没有人懂这些玩意,不然可能就是别人心目中傻X的化身了。 现在估计已经没有人再使用了,就让他被时间遗忘吧。

Eclipse

渐渐的发现,这单纯的一个网页,好看倒是好看,但并没有什么卵用,别人的网页只要有浏览器在任何地方都能看到,我的这个就只能自娱自乐了。 然后就知道了,还有服务器这玩意。按照当时的趋势,Java做Web开发可是压倒性的优势(当然现在也是),差点连前端UI都给霸占了。

写Java不可能不知道Eclipse,就像学Java Web不可能不知道SSH(Struts, Spring, Hibernate),Tomcat, Apache一样。 Eclipse可是开发人员的标准工具,功能一应俱全,要什么有什么,想要的不想要的统统打包送给你了,各种插件装到你手软,还时不时的问候你一下, 来个警告或错误提示什么的。只不过当时电脑的配置远不像今天动辄8核16G,跑起来卡卡的,不过真的是很强大。

Java依然炙手可热,Eclipse或许也会更大,更强,更快吧!

UltraEdit

正式工作了,就不能像以前那样任性了,要有集体意识。不能说大家都在用A,你非要去用B,这在过去可是要被批斗的。 当时大家用的都是UltraEdit,虽然是一款商业软件,但是大家也都是当作免费的来用。功能上可能无法与Eclipse相比,也不支持插件, 但作为代码编辑器也是绰绰有余,速度够快。

还好当时只是写一写C语言代码,对编辑器的要求也没有那么高。貌似现在还是收费的,既然能坚持到现在,说明还是很不错的,至少购买并还在使用的人应该是这么想的。

VI(M)

这个东西就好比Windows自带的记事本,基本上目前Linux上都自带了,但是要想熟练的使用,可是要费一些功夫。 由于工作中涉及到嵌入式系统,都是在命令行下操作,这个时候可选择的余地就不多了,VI既然这么牛,就用呗。

期间也系统性的看了一些VI方面的书籍,但直到现在VI也没有成为我开发的主要工具,虽然网上也有很多教程,手把手教你怎样把他打造成一个强大的现代编辑器, 但是目前市场上的编辑器已经足够强大且现代了,为什么还要再多此一举呢。那就继续留在冷宫吧,等哪一天手痒了再把他拿出来挠挠。

LiteIDE

紧接着换了工作,相应的把语言也跟着换了,从C转向了Go。在当时Go还不是很流行,主流的编辑器对其支持都还不是很完善,找来找去,发现了这个专门为Go语言而生的编辑器。 既然是专门用来开发Go的,自然对Go语言的支持会好很多。

用了大概有一年多,基本上能满足平时的需求,然而随着工作的深入,需求也就越来越多,没有插件的支持成了其最大的硬伤, 而且在使用过程中由于文件没有自动重载出现过几次文件被覆盖导致代码丢失的问题。

Sublime Text

从LiteIDE叛逃后,经同事的推荐,就用上了Sublime,这真是一个极客工具,界面简洁,配置灵活,插件丰富,速度也相当的快, 唯一的一个让我不爽的地方是,在linux下对中文输入法的支持很烂,虽然网上也有解决的方法,但过程都是无比的复杂。

其他

当然我也尝试过很多其他的编辑器,像IntelliJ IDEA, Emacs等,还有一些云IDE(Cloud9, Nitrous),但都是浅尝辄止, 没有真正的去用,当然不是因为他们不好,而是我已经作出了选择了,大概是先入为主的原因吧。

答案

该回到正题说说选择的事了。

今天专门把Atom和VSCode都装上试了试,两个都很不错,风格也挺类似,就我个人而言,目前我更倾向于选择VSCode,插件安装和代码提示方面都要舒服一些。 这篇文章就是在VSCode下面写的。

但是这里不得不吐槽一下,VSCode居然不能在一个窗口中同时打开多个目录, 而且这个问题早在两年前就有人提出(issue#396),至今也没有实现。 首先不说这个功能好不好,至少我有这方面的需求,很多其他人也有,看看issue里面的评论就知道了。微软难道变硬了?

最终选择什么已经不重要,没有什么是一成不变的,鬼知道明天我会用什么。