对于文本编辑器/IDE的一些看法

最近我从Vim迁移到了Spacemacs。

其实我一段时间之前就已经听说过Spacemacs了,知道他的哲学是Vim+Emacs,也知道有一篇文章叫做《从Vim迁移到Emacs》,也曾安装试用过,但并没有多大的感觉。但是直到最近,我才真正发现了Spacemacs,一款我真正想要的编辑器。

或许是我对Vim有一点不满(一直不想学vimscript),或许那时我太闲而去捣弄其他编辑器,我看到了Spacemacs,于是按照以往的习惯,查资料,看评价,看官方文档,想了解这是个怎样的编辑器。然后我安装了,安装步骤非常简单,初始启动时安装elpa安装插件有点像vundle,但是更炫酷。

启动完成之后我就看到一个很漂亮的界面(GUI),包括图标、配色、状态栏什么的,都很棒。对比了一下gvim,真的是好看多了。虽然我一直觉得编辑器颜值不是关键,但这次我说服不了自己了。

然后就逐步熟悉了,除了方向移动和退出,Emacs的键位我都不会,但是Spacemacs并不需要会(而且本人目前并不想用Emacs原生的键位)。Spacemacs是开箱即用的,就是一个小白IDE。我花了两三天时间看完了官方文档,接着就能用它来进行工作和日常的程序开发了。

先说一下我喜欢Spacemacs的原因:

  1. 结合了Vim和Emacs的优点。Vim的优点在于模式编辑,Emacs的优点在于高扩展性,这是我目前的认知吧。模式编辑的优点我就不多说了,谁用谁知道,是vi/vim原生独占的。但很多编辑器和IDE都有vim模拟插件,但很多都并不完美,evil-mode却是很趋于完美的了。而Emacs的扩展性非常强大,有人说它是伪装成编辑器的操作系统,在GUI下它甚至能浏览图片和阅读PDF。Vim的插件,在Emacs上基本都有相似的或者可以替代,甚至做得更好,这是其他编辑器或者IDE所做不到的。Emacs的神器插件org-mode,真有如《怪物猎人》之于PSP,许多人是为了它而学习emacs的。

  2. 人体工程学的键位设计。正如Spacemacs其名,空格键(SPC)是它的重大卖点,其实就是将Vim的<leader>键设置为SPC。Vimer很少会如此重度地依赖<leader>,而将SPC映射成<leader>的就更少了,有些人还认为将SPC当做<leader>的做法很奇葩,但这恰恰是最符合人际工程学的做法:SPC是键盘上容易按到的键,两只所有手指中最强壮的大拇指都可以按得到,作为<leader>是非常适合的,Spacemacs大量使用以SPC为前置的键位组合。另外Spacemacs将fd映射到<Esc>,我本是jk大法党,但是Spacemacs的fd大法不仅可以用于插入模式,还能用于选择模式、neotree文件树窗口关闭,helm提示窗口关闭等等非常多的场合,这时jk大法明显不适合了,jj更糟糕(在选择模式上下选择时突然退出是什么感受)。而且hjkl是非常常用的光标移动键,<Esc>同样也是非常常用的,我经常在用Vim写了一天代码时发现右手食指酸痛,确实对它的负荷太大了,所以我毅然投奔去fd大法。本来以为要很长时间去修改这个习惯,没想到就那么5~10分钟的时间我就完全适应了fd。

  3. GUI设计得太漂亮了。

然后我说一下对编辑器键位的设计问题吧。

前面都说到了Vim和Emacs的优点,但是我并没有说他们的键位,包括Vim,反而我觉得他们的键位设计得太糟糕了。有些人会认为默认的键位是经过千锤百炼而出来的,是经过时间考验的。我觉得这说法根本是扯淡吧?键位由作者一开始设计好了之后就不怎么变了好吧。或者是作者那个年代的键盘和现在的不一样吧,总之我就觉得设计得不够好。

Vim的hjkl是闻名于世的,任何学习Vim的人要经过大量的肌肉训练才能练成。虽然说练成之后有一样装逼感,但我并不赞同,jkli比hjkl要新手友好得多了,而且并不比hjkl差什么。Vim的翻页键和Emacs的光标移动,虽然说有英文含义便于记忆(其实也不好记……),但是太散乱了,左一个右一个的,为何不安排到相邻的位置让一只手可以操作呢?还有很多我觉得不太合理的地方,就不说了。

你可能感兴趣的:(对于文本编辑器/IDE的一些看法)