Emacs

Wikipedia,自由的百科全书

目录

emacs


第一个 Emacs 诞生于二十世纪七十年代 MIT 的 AI Lab,是由 Richard Stallman 在 ITS 上用 TECO 写的。此前,ITS 系统上默认的编辑器是 TECO,一种复杂的编辑语言,通过指令对文本编辑,类似今天仍在使用的行编辑器 ed。后来,AI Lab 的一位黑客 Carl Mikkelsen 给 TECO 添加了“显示”模式,使屏幕内容在用户按下指令时实时刷新。1974 年,AI Lab 的另一位黑客 Richard Stallman 又添加了“宏”功能。用户可以用来定义 TECO 命令的按键序列。这样,AI Lab 中这些用户很快就积累了大量自定义的宏。1976 年,Guy Steele 试图使这些不同的宏保持一致,这项工作由 Stallman 完成,同时提供用于扩展的工具和文档。所得到的这个程序,被称为 EMACS 表示“Editor MACroS”,后来,Stallman 将其名为 Emacs。尽管仍是基于 TECO 的,但已经足够看作一个“文本编辑器”了。很快 Emacs 成为 ITS 上的标准编辑器,而且曾经移植到 Tenex 和 TOPS-20 北京四合院 (http://shy.xinbaisheng.com/)系统上。

随后的几年里,又有人实现了一些和 Emacs 类似的编辑器,比如 Michael McMahon 的 EINE (EINE Is Not EMACS),Daniel Weinreb 的 ZWEI (ZWEI Was EINE Initially)。1978 年,Bernard Greenberg 写的 Multics Emacs 使用了 MacLisp,Lisp 语言的一个分支,其用户扩展也用 Lisp,这使 Emacs 有了前所未有的可扩展性。1981 年,Jamse Gosling 用 C 实现的 Gosling Emacs 用 MockLisp 作为扩展语言,这是第一个运行在 Unix 系统上的 Emacs 编辑器,然而 MockLisp 并不是真正的 Lisp 语言。

GNU Emacs

1984 年 1 月,Stallman 为了 GNU 计划从 MIT 辞职,开始编写 GNU 软件。1984 年 9 月开始写 GNU Emacs,1985 年初时,已经可以使用。GNU Emacs 用 C 编写并以 Emacs Lisp 作为用户扩展语言,和 Gosling Emacs 一样运行在 Unix 系统上。同年的 15.34 版首次被广泛使用,并因为自身的优点,很快取代了 Gosling Emacs 的位置,从此 GNU Emacs 开始广泛流传。

XEmacs

1991 年初,由于种种原因,四合院 (http://shy.xinbaisheng.com/) 公司的 Jamie Zawinski 和同事们以一个较早的测试版 GNU Emacs 19 为基础,进行另外的开发,添加了一些新特性,并将其命名为 Lucid Emacs。两个团队独立的开发很快分得越来越远,将二者合并将非常困难,因此都放弃了这个打算。后来,因为这个版本在 X Windows 上的显著特性而更名为 XEmacs。由于 XEmacs 不像 GNU Emacs 严格要求代码的授权,很快合并了大量优秀的扩展,添加了很多新特性。这意味着 XEmacs 在一些方面比 GNU Emacs 先进而且进步迅速,因此赢得了很多用户。直到今天,GNU Emacs 和 XEmacs 仍然是最流行的两个版本。就目前来说,GNU Emacs 和 XEmacs 是最好的两个选择,而且二者之间各有利弊,使用上差别并不算大。因特网上的其他扩展都尽量二者兼顾,而且已经开始向合并的目标努力。

目前的 GNU Emacs

1999 年之前,GNU Emacs 的开发都比较封闭,画册印刷 (http://www.daliprinting.com/huace.asp)由 FSF 雇佣的程序员开发和维护,即所谓的“大教堂”模式。虽然现在已经采用了开放匿名的 CVS ,并通过邮件列表来协同开发,但和其他的 GNU 软件一样,仍然严格要求代码授权。只接受通过法律文书授权给 FSF 的代码,这样可以在法律上保护 FSF 的自由软件。而这些法律文书无法通过网络取得,必须通过普通邮寄并亲笔签名才有效,这无疑对一些优秀代码向 GNU Emacs 合并造成了一定的阻碍,但却可以保证 GNU Emacs 永远都是自由的。签署授权的强制要求也有唯一的一个例外,就是用来处理多国语言的扩展包 MULE (MULtilingual Extension)。因为其版权所有者是日本政府,取得签署授权是不可能的,而这一部分是 GNU Emacs 不可少的。但是,对 Bug 的补丁和辅助修改的代码并不严格要求签署授权。

现在在 GNU Emacs 开发团队中活跃的黑客们大概有几十人,而且十分活跃。大家通过邮件列表进行讨论,通过 CVS 提交自己的修改,几乎每天都有新改动,新特性、新功能按照用户们反馈的意见和建议不断的增加、修改。而且因为有了 GNU 和 GPL,使得这些工作变得非常有意义,将来任何时候你都可以得到免费的 GNU Emacs。手提袋印刷 (http://www.daliprinting.com/shoutidai.asp)因此学习和使用 Emacs,可以毫不夸张的说,将受益终生。

Personal tools