1. 犀牛前端部落首页
  2. 资讯杂谈

Emacs基础入门教程(一)Emacs的来历

Emacs基础入门教程(一)Emacs的来历

前言

何谓横刀立马?说明 Emacs 的功能所向披靡。征战沙场三十来年,是 Unix 世界里文本编辑器的关将军,Lisp 语言就是它的青龙偃月刀。
虽然 vi 一开场就想要“拼爹”,Emacs 可不稀罕这玩意,因为“拼爹”不成很可能就会“坑爹”。反正 vi 能干的 Emacs 也能干,vi 不能干的就都是 Emacs 的了,所以人们总说Emacs 是伪装成编辑器的操作系统。

Emacs 的来历

Emacs 是由 Richard Stallman 于 1975 年在 MIT 人工智能实验室与 Guy Lewis Steele Jr 共同开发出来的。而在此之前,人工智能实验室的科学家们使用的编辑器是一个叫做 TECO的行编辑器。在 TECO 上按键是不会直接将字符插入到文档里的,必须先输入一系列相应的 TECO 指令才行,而被编辑的文本在输入命令的时候却不会显示在屏幕上。完全可以用“盲编”来形容 TECO 的操作。
有一天 Stallman 应邀去访问斯坦福大学人工智能实验室,见到那里的科学家们使用的是一个叫做“E”editor 的编辑器。按什么键就在文档中插入什么内容,所见即所得,非常好用。这让 Stallman 很是激动了一番,暗下决心也要弄出来一个。但是等他回到 MIT 的时候,已经有人(Carl Mikkelsen)先他一步给 TECO 增加了“Control-R”模式,能够做到跟“E”editor 差不多的效果,只是性能很一般。显然 Stallman 有些不爽,于是推倒了重来以提高效率,又加入了很像 Lisp 语言的宏以允许用户重定义 TECO 的键位。

这一新版的 TECO 立刻在 MIT 人工智能实验室流行起来,并且很快积累起了大量自定义的宏。这些宏通常以“MAC”或者“MACS”结尾,就是宏(macro)的意思。两年以后,Guy Lewis Steele Jr 承担起统一当时存在的各种键盘命令集的工作。Steele 与 Stallman 经过日夜奋战,最终实现了一套包含扩展功能以及文档的新宏包。他们将这个宏包命名为EMACS,是为“Editing MACroS”的缩写也有一种说法是“E with MACroS”的缩写,表示 Stallman 对“E”editor 的恋恋不忘。
最早的 Emacs 同 TECO 一样,只能运行在 PDP-10 系统上。虽然 Emacs 是在 TECO 的基础上发展起来的一个宏包,但是它足以被认为是一个新的文本编辑器了。很快,Emacs就成为 MIT 人工智能实验室的标准编辑器了。Emacs 之所以会使用 Lisp 语言作为其扩展语言,很大程度上是因为它诞生在人工智能实验室,那里本来就是 Lisp 语言的天堂。后来,Stallman 开始致力于自由软件运动,开发了 GNU Emacs,也就是现在应用最为广泛的 Emacs。

最初的 GNU Emacs 是在 Gosling Emacs 的基础上开发的,不过 Stallman 后来用一个真正的 Lisp 解释器代替了原来的 Mocklisp 解释器。由于 Lisp 解释器在 Emacs 中的核心地位,这就意味着要重写几乎全部的代码。GNU Emacs 是 GNU 计划的第一个项目,以C 语言编写,将 Emacs Lisp(解释器由 C 实现)作为扩展语言。GNU Emacs 最早广泛使用的版本是 15.34,于 1985 年发布。其实没有任何人见到过版本 2 至 12,因为它们从来就没有在这个星球上出现过。GNU Emacs 的早期版本都是以“1.x.x”的形式编号,直到 1.12 版时开发人员放弃了这种记法,因为他们认为主版本号是不应该改动的。所以,Version 13 就成了第一个真正的公共发行版,它于 1985 年 3 月 20 日正式与大家见面。

 

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/890.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注