2.1 背景知识
Emacs是一款很强大的编辑器,它不仅仅是程序员的专利,连普通人也能享受先进工具带来的高效与愉悦感。
2.1.1 Emacs的历史
Emacs在20世纪70年代诞生于MIT人工智能实验室。在此之前,人工智能实验室的PDP-6和PDP-10电脑上运行的ITS操作系统的默认编辑器是一个叫作TECO的行编辑器。与现代的文本编辑器不同,TECO将击键、编辑和文本显示按照不同的模式进行处理,稍晚出现的vi与它有些类似。在TECO键入并不会直接将这些字符插入文档,必须先输入一系列相应的TECO指令,而被编辑的文本在输入命令时是不会显示在屏幕上的。在如今还在使用的UNIX编辑器ed上,我们还能看到类似的工作方式。
20世纪70年代初,理查德·斯托曼访问斯坦福大学人工智能实验室时见到了那里的“E”编辑器。这种编辑器有着所见即所得的直观特点,深深打动了斯托曼。后来这已成了大部分现代文本编辑器都具有的特性。后来斯托曼回到MIT,那时候MIT AI Lab的黑客Carl Mikkelsen已经给TECO加上了称作“Control-R”的编辑显示模式,使得屏幕能跟随用户的每次键入刷新显示。斯托曼重写了这一模式,使它运行得更有效率,后来又加入了宏,允许用户重新定义运行TECO程序的键位。
这一新版的TECO立刻在AI实验室流行开来,并且很快积累起了大量自定义的宏,这些宏的名字通常就以“MAC”或者“MACS”结尾,意为“宏”(macro)。两年后,盖伊·史提尔二世承担起统一当时存在的各种键盘命令集的工作。史提尔和斯托曼经过日夜奋战,最终完成了这一任务,包括一套扩展和注释新的宏包的工具。这个系统被称作Emacs,代表“Editing MACroS”,也代表“E with MACroS”。根据斯托曼的说法,他采用这个名字是“因为当时‘E’在ITS里还没有被当作缩写用过”。
2.1.2 Emacs可以做什么
基于Emacs强大的插件体系,它能做到以下非编辑器的功能:
①WebKit浏览器。能在Emacs中边写代码,边通过浏览器查阅各种资料。Dired文件管理器,是具有键盘风格的文件管理功能,Dired有内置的标记、搜索、文本编辑模式等强大功能。
②Org任务时间管理工具。可以基于文本式对项目进行管理和时间追踪,虽然是纯文本,但是能轻松嵌入多媒体、外部链接、电子表格等强大工具。
③聊天通讯软件。它强大到拥有IRC聊天功能,能自动回复、自动翻译,甚至是语音读出朋友的消息;通过简单的扩展还能轻松支持XMPP协议和其他软件聊天(比如gtalk)。将新闻阅读器,RSS、Atom格式新闻尽收眼底,不用为了看新闻来回切换窗口。
④终端模拟器。再也不用在编写代码的时候切换到外部终端中看输出结果,甚至可以在终端模拟器中嵌入vi,或者在终端中再嵌入Emacs,然后在Emacs中打开终端再嵌入Emacs。
⑤Gnus。拥有统一的阅读邮件和邮件列表的工具Gnus, Gnus基于线索式的邮件管理随时保持清新的上下文来回复好友邮件。
⑥数学计算器。Emacs中从基本的计算器到高级的数学公式演算应有尽有,甚至能实时输出3D演算结果。
⑦翻译软件。所有Emacs可以访问到的单词和语句,都可以快速地被翻译成用户的母语。通过festival或者其他发音引擎,语音朗读可以自由地朗读Emacs可以看到的任何数据,用户可以边写程序边听IRC聊天。
还有很多小功能,比如查看日历、玩俄罗斯方块、好友信息管理等。Emacs最大魅力就是它只提供基础的框架和插件体系,因此它的功能具有很大的扩展空间。
2.1.3 Emacs与Vim
Vim短小精悍,将编辑文本做到了极致。但是Emacs同样不弱,它还有更加强大的扩展功能,而且更容易上手。两者都是值得花时间学习的软件。