“天下程序员分三种,一种用Emacs,一种用Vim,剩下的是其他”
Emacs: The editor of god
Vim: The god of editor
Emacs定义是神用的编辑器,意在其能满足神创万物的需求。
Vim定义是编辑器之神,意在其余的编辑器都是仿照其部分创造的产物。
所谓”既生瑜,何生亮“——Emacs源自第二个语言lisp和Stallman,Vim则是源自高效编辑文本的7个习惯。Emacs可谓谁乾坤大挪移,不仅能做你想到的事,还能做你想不到的事;Vim就像截拳道,唯快不破。这两者其实都是masterpiece,怎料程序员在适应了一种生活方式之后往往会自行比较其他的生活方式,而且自带优越光环。正所谓武功再高强也有华山论剑的一战,就好像华山剑派剑宗气宗迅速敌对,同时自诩为武学正宗。不过,最后华山剑派的翘楚仅有二人,一是风清扬——与世无争,隐居后山;一是令狐冲——独孤九剑加吸星大法,所幸心怀善念,笑傲江湖。
金庸笔下的令狐冲既有华山剑法又有日月神教的吸星大法,只求快意人生,何其潇洒。所以,Emacs开始出现了viper-mode和后来的evil-mode以及一系列evil系的plugin;同时,Vim也凭借Vimrc开始了复杂功能的拓展。只可惜,还有相当一部分人坚守在前线争吵。(说来也可笑,什么战争是用嘴战斗的,结果“峰会”二字在脑海种冒了出来,可叹此前以为的战争太片面了)
值得一提的是,自从Stallman先生化身St. IGNUcius开始宣扬The Church of Emacs之后,Vimer们也更加频繁地向众人宣传Vim的奥义,甚至信心满满地convert听众里的Emacser。如此看来,Emacs像是基督教,Vim像是伊斯兰教。想来,现在二者的传播也是可以预料的。Vim的风靡态势和Emacs的小众路线,可以从广大码农的信仰选择种得到验证。
"But Why Emacs?"
Emacs一开始就给了程序员一堆沙子:build your own kingdom。lisp语言的简洁、易用和扩展性,使得Emacs可以直接从源码上hack。这一点,哪怕是现在非常简单的进行扩展的Vimrc也不得不承认的事实——Vim虽然扩展简单,不过Vim的扩展仅仅是扩展,我们无法触及编辑器的本身。所以,目前有一个很hot的project是用Haskell重写Vim,使得其获得可与Emacs匹敌的扩展特点。Haskell最近也是大热门语言,加上Vimer们的狂热,很快就能期待一个涅槃之后的Vim,那时的景象又是如何呢?(我不了解Haskell,不过从其热度来看丝毫不逊于当年的lisp)。
evil-mode是lisp写的Vim模拟器,只要是Vim中可以正常使用、evil中无法使用的情形,都可以直接作为bug提交给evil的开发组——这是evil的宣言。evil可能会被Vimer仇视,不过,个人觉得是两个神器继续进化的里程碑,即两种生活方式的对话与交流并产生更加人性化、高效的生活方式,能够生活在当下的Emacser和Vimer都是幸运的。
或许有人会问:“evil-mode之后,Emacs还是那个快捷键眼花缭乱恨不得买个脚踏板(真的有,$200 详见EmacsRocks的Twitter)的Emacs吗?“
确实,这个问题非常困扰,特别是跟我一样强迫症的Emacser们。Purcell说,他用了10年的viper-mode,最近开始回归Emacs键位,有时候也用用Vim做文本编辑,并不用evil-mode。后来,想到大妖说的“编辑器不重要,重要的是get things done”也就释然了,既然都是神器,为何不能取长补短?redguardtoo的观点也是推荐双修,以提升productivity为目的。所以,现在我也经常两个混着使用,特别不同平台下编辑文件。无配置的Vim在大多数Linux系统中自带,Emacs需要经过配置之后才能行云流水。按照不同的情形,选择合适的工具,高效地完成工作才是编辑器的初衷,何必墨守成规,我们只需笑傲江湖。