3. 黑客的编辑器

0. 序章:神器的传说
在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神 。
追求独步天下的高手和低手们争着一睹它们的风采,可看到它们朴素单薄的界面后,不禁心下怀疑:这就是神器吗?甚至有人生了轻视之心 。
肤浅的人嗤之以鼻,说:什么年代了,还抱着这么老土的玩意不放,真他妈Geek!同学,请冷静下来,听我说:它们的确够老了,都几十年的寿命了,但你想想为什么,为什么这么古老的编辑器,却有越来越多的人皈依它们 。
下用和的人质问:它们到底比和好在哪里?我说:不可同日而语 。
连和都没用过的同学问:它们就相当于Linux上的 吧?我说:请你从我的眼前消失 。
一些人勇敢地拾起了Vim或Emacs,却发现学习曲线陡峭而漫长,于是在没发现它们的强大之前就放弃了,说:太难用了,把键盘当鼠标用的烂玩意,有什么好的?
还是有一些人留下来了,坚定地守护着这两大神器 。一些说葡萄太酸的人想离开又不甘心,总是问:它们到底神在哪里啊?我不禁想起了李宗盛的几句歌词::
有人问我你究竟是哪里好,
这么多年我还忘不掉?
春风再美也比不上你的笑,
没见过你的人不会明了 。
也许你不会明了,我还是要努力讲一讲 。
1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命

3. 黑客的编辑器

文章插图
曾几何时,用户对软件的可扩展性没有概念,他们只能对他们使用的软件进行非常有限的定制 。扩展软件的权利保留在软件开发者手中 。软件的使用者如果想要新的功能和特性,只能等待软件的升级 。有能力的用户等不及了,为了添加自己想要的功能,从0开始写了一款新的软件 。就这样,新的功能意味着新的软件,下的软件前赴后继,迅速地更新换代着 。因此, 下的软件都很短命 。
Linux和开源软件渐渐流行起来,人们才发现:可扩展性才能给软件强大的生命 。在MS的VS横行的今天,为什么被评为最好的IDE?就是因为它在IDE中最具可扩展性 。在IE几乎一统天下的时候,为什么能夺走越来越多的用户,也是因为它的可扩展性 。提供了良好的扩展接口,用户自然会写出各种各样的插件,来满足用户自己形形色色的要求 。这样,软件在用户的推动下自然变得强大了 。
Emacs和Vim没有被时代淘汰,反而越发强大,也正是因为在数不清的编辑器中,他们具有无可匹敌的可扩展性 。
1.2 Emacs是伪装成编辑器的操作系统
有句夸张的话说:Emacs是伪装成编辑器的操作系统 。细细想来,这句话并不夸张 。
Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展 。Lisp是什么东西,这同样是种很有生命力的编程语言 。在C语言还没有发明的年代,MIT的人工智能实验室写ITS操作系统时,一部分用的是汇编语言,还有一部分就是用的Lisp 。现在,Lisp仍在人工智能研究领域广泛使用着 。
有这么牛逼的扩展语言,注定Emacs向着无所不能的方向发展 。渐渐地,人们用Emacs不再限于写程序,写文档,而且在Emacs里管理文件系统,运行终端,收邮件,上网,听音乐……,真是一发不可收拾 。甚至,有人用Emacs控制咖啡机煮咖啡 。
这种大而全的扩展,背离了“一个程序只做一件事并做好它”的 Unix哲学,被Unix的忠诚用户所诟病 。可是真的背离了吗? Emacs说过自己是一个编辑器吗?
正是因为Emacs的无敌的可扩展性,人们才分不清Emacs到底是不是一个编辑器了 。但,就是有人喜欢这种All-in-One的哲学,喜欢在Emacs中完成每件事 。所以才会有人写《生活在Emacs中》,所以, Emacs才会成为一种信仰 。