笔者以前是使用vim写代码,因为vim和emacs一直处于被讨论的情况,所以很自然就去了解了一下,最开始是spacemacs,然后弃了(不管怎么说,这不过是在用别人的配置。没有意义,这样不如直接用atom什么的)。后来去学习了一下emacs操作。了解了evil。以及elisp(如果学过scheme或者common lisp的话,elisp可以直接上手,基本上没有太大差别。就是文档习惯有点不太一样)。

为什么从vim转至emacs

  1. 编辑器本身的效率

    这个最大的问题就在于执行上面。vim上对于php以及html的高亮有着致命的效率问题(也有可能是本人使用的高亮差件优化问题)。当文件过大时,在移动等方面也存在问题。对于项目而言,如果开启了过多的buffer,也会导致一定上切换不流畅(强迫症患者)。

  2. 开发效率

    emacs被称作没有编译器的操作系统。在emacs里面可以做到任何事情。当然,对于vim而言,是非常符合unix风格,一个工具只做一件事。但是对于项目开发而言,我们想要的是在一个界面下做到大部分事情。而不是切来切去(不过在命令行上面做各种其它事情未必比emacs上慢)。

    最主要的原因还是在于项目目录处理上。vim有一个工作目录。以此为基准,虽然也衍生出了非常多的项目管理插件,但总体而言,都不如emacs来得舒服。

  3. 界面

    emacs存在着非常好的GUI,而vim没有。

  4. emacs能尽乎完美得模拟vim

    是的,emacs是我现在对于vim行为模拟最完好,而且能和vim各种操作完美转换的。对于其它各种编辑器,除了在编辑过程是是vim外,其它比如文件切换啊等等,还是主要依赖于编辑器本身的一些快捷键或是鼠标。

如何选择

  1. 服务器端,必然是vim
  2. 项目开发,emacs首选
  3. 小文件、脚本编写,vim来得方便

结论

说白了还是外观和效率,vim在一部分表现上面确实不如emacs。但是vim相对emacs从配置到使用(这里的使用是忽略编辑器那个hjkl什么的特性)要简单。

所以,vim和emacs都得使用。vim主要进行简单的编辑,所以在配置上不用过于复杂,有一定基本就行了。而emacs则能完则完。不过嘛……就个人习惯而言,虽然用着emacs,但是配置不是很全,而且还是会习惯性切回终端来操作,毕竟打命令还是来得要方便点。

不过更多的时候还是看心情来使用吧。毕竟emacs虽然很强大,不过有一些东西还是在GUI上操作比较方便,比如GTD什么的。

最后上一个笔者的配置文件:dotfiles