标签:editor

VSCode真香

第一把锤子:Vim

刚学写程序时,用过各种IDE,上古神器Visual Studio 6、Delphi、NetBean、Aptana Studio,等等(NodePad++就不提了)。接着就误入歧途,跟大佬混耳濡目染,学会了vim,神器真香,于是就一直用vim当锤子,尝试钉各种钉子。

后来工作,做游戏Client写C#尝试用vim,被现实扇了一巴掌;再做游戏Backend用Java尝试用vim,又被现实扇了一巴掌。被扇多了就学精了,C#用Windows + Visual Studio,Java用Eclipse,Scala用IntelliJ,ObjC用XCode。见人说人话,见鬼说鬼话,别用意识形态折磨自己。毕竟大部分IDE都会有很好的快捷键和vim key binding,像我这种熟练工,经过练习后敲Eclipse的手速不比JR的售票员慢多少。

第二把锤子:Spacemacs

再后来做SaaS,作为一名拿着TechLead的钱操着PO心的一线码农,用的Golang+Python+TypeScript+其他,需要一个全栈的编辑器。vim能做,但设置麻烦。这时同事推荐的Spacemas就成了我的新锤子。

Spacemacs本质是一个魔改过的Emacs。因为Emacs是一个优秀的操作系统编辑器,Spacemacs只通过一堆Lisp代码就把Emacs改得它妈都认不出来:改成了vim,让emacs同时支持了vim和emacs两套模式。

Spacemacs主要有四个特点:

  • 可记忆性:比如b for buffer,p for project。
  • 可发现性:很容易查询到各个命令的功能和对应的快捷键。Spacemacs的一个牛逼之处就是用Space当Leader键,vim模式下大部分的功能都能用以Space键开始的组合键完成。
  • 一致性:对于不同的功能及语言,一套约定俗成全部搞定。
  • 社区合作:众人拾柴火焰高。

Spacemacs的体验是无与伦比的,大部分语言都能通过简单地在设置文件上打开一个开关完成。比如Golang,你只要按照官网把相关组件装好,打开设置,基本就能用。至少对于Golang、Python、TypeScript来说,只用Spacemacs官网的设定就能完成像vim要做很久的配置。

Spacemacs还强在它是Emacs。所以Emacs的优良生态都能上,像Helm,Org,都能在Spacemacs上轻松用得到。

第三把锤子:Visual Studio Code

去年换了工作,跟外国同事接触多了,更感觉越是优秀的工程师,越喜欢用智能的编辑器orIDE。Junior是不知道其他工具才用的IDE,而Senior是为了最大限度地提高效率才用的IDE。

而用Spacemacs这种编辑器的尴尬是:无论你写得多快,你都没有机器写得快。Spacemacs再厉害,还是靠的各种lint和lsp。手速再快,也耐不住智能提示乱拳打死老师傅。作为一个曾经的IDE用户,这种被智能提示征服的快感我还是清楚的。

智能提示做得好的,IntelliJ Idea绝对无冕之王。钱不是问题,奈何这货真的吃资源,打开了基本就什么都做不了;再者我买的时候Goland刚出,bug漫天飞。后来只有偶尔写Scala时才会打开一下,买了一年的Ultimate,用了大概也就10个工作日。

比Spacemacs智能,比IntelliJ Idea轻量的,据我所知也就只有VSCode了。VSCode一直想试,上手了两三次,还是换回了Spacemacs。主要是没看出来VSCode比Spacemacs多的功能在哪里,而我不想多背快捷键。

而近来再换成VSCode的冲动,是为了一个功能:Debug

Debug是vim/emacs一类编辑器之痛,不仅Golang,像Python、PHP、Java都无法Debug。而VSCode集成了非常好用的Debug工具集,调试程序非常简单。用习惯vim/emacs的人可能会觉得没有Debug没有所谓,但这往往就是老师傅被乱拳打死的原因。

有人会说写好UnitTest就不用Debug了,然而这又有另一个问题:VSCode写测试的体验要好很多。VSCode不但可以很轻松地运行or调试一个测试,还可以实时标记有哪些地方已经被测试覆盖。VSCode还自带了很方便的自动测试生成器。用Spacemacs写测试是体力活,而自从用了VSCode,我开始喜欢上了写测试。

带Terminal也是一点,有些IDE朋友可能会觉得很可笑,但这的确是一个折腾了vim/emacs用户几十年的问题。

Live Share & Remote 也是很牛,可惜用到的机会还是不多。

最后是,有越来越多的官方或大公司出品的插件出现在VSCode上,像docker、k8s、jira等开发流程用到的工具都能在VSCode上很方便的操作,能省不少时间。

虽然有些功能IntelliJ Idea也有,但是VSCode不用钱还快啊。

我建议各位vim/emacs用户,有钱的换电脑换IntelliJ Idea,没钱的换VSCode。多让电脑写代码,别为了炫耀键盘什么都自己打。

早点回家早点抱老婆老公比什么都强。