Eternal Embrace

TECO 简介

TECO是一个经典的文字编辑器,全称为 Text Editor and COrrector ,原先为 Tape Editor and
COrrector。从这个名字就能看出这个编辑器有多老了。

从编辑器之战开始说起

Vim 用户:用 Emacs 的都是智障
Emacs 用户:Vi这种东西也能算编辑器?
TECO 用户:我是爸爸,你们都是儿子

如果说 Vi 类编辑器的特色是用各种指令来编辑的话,Emacs 就是用各种预定义的函数(或者说宏)
来操作的编辑器。那么,TECO 的特色就是结合各种命令和宏来对文本进行操作。

写在 teco.el 中的 teco 哲学如是说:

真正的程序员,他们要的不是一个所见即所得的编辑器,他们要的是一个简单、强大、
神秘而又苛刻的编辑器。这就是 TECO。

没错,这就是 TECO,唯一而真理的编辑器。

如何使用 TECO

可能许多人觉得 TECO 是一个类 sed 的编辑器,完全依靠输入命令来编辑,时不时看一看上下文
来定位。没错,早期的 TECO 的却是这样的。

不过实际上,TECOEmacs 时代所用的 TECO,已经有了所谓 Video Mode 的概念。那就是在屏幕上
划分出一块区域来显示当前正在编辑的文章,每次输入完一段命令以后刷新屏幕来显示结果。
现在常见 TECO 实现中的 TECOC 就是这样,而它的作者是为了尽可能保留 TECO 的原始风味。
事实上,比较现代的 TECO 实现,比如 Video TECO ,或者我正在用的 SciTECO,都能在输入命令
的同时实时刷新结果。也就是说,使用者可以直接输入一段很长的命令而不用担心会出严重的错误。
事实上如果你在输入编辑命令的同时发现自己打错了字,你可以直接按一次 ESC 然后控制光标
到前面出错的地方,修正完错误以后继续慢慢输入。我在打前面那句话的时候就用了这个技巧。

一个例子

那么,实际用起来是怎样呢?

在 TECO 中,开始输入文字的命令是I, 不用怀疑,就是这个,注意 TECO 的命令不是大小写敏
感的,也就是说 i 也是 OK 的。

要输入 “Hello World!“,只要在提示符 * 后面输入 iHello Word! 就可以了。
等等,好像输错了。没关系,只要接着输入一个 $,实际上是一个 ESCape 字符,
然后继续输入 -2cil,最后按两下 ESC 就完成了。

没错,是不是就像在用 VI 一样呢。实际上,TECO-11 中的确有一个模式(或者说宏)
叫做 VIEDIT。想必各位也就明白 VI 这个名字是怎么来的了。

使用感受

我觉得可以用这样一句话概括:

就像用女孩的发梢切割时间的忧伤。

在 Video TECO 里面,每一个命令将要产生的效果都会即时显示出来,不像其它编辑器,
屏幕上显示的是已经发生的事,Video TECO 显示的全都是还没有作出的修改,有一种
自己在编辑未来的奇妙视感。不像老式 TECO,得时不时打印内容来查看是否出错,Video
TECO 使得即使是一个新手也能输入一个很长的命令再执行,几乎不需要被 ESC 打断。

在以前,TECO 除了用来写文本,还是 PAGER 和打印预览,就像 Emacs 一样。
它的手册中写着:“TECO 是极其容易上手的”。可惜今天的人连 Emacs 都不敢去
用,我对此不知道该作如何感想。
这就是 TECO 的魅力。