BBS水木清华站∶精华区
GNU EMACS 的特质
GNU EMACS 与其说它是一个编辑器(editor),倒不如说它是一个
以编辑器为主干的
环境软体。一般的软体都是将编辑器视为一个附属功能,只有
EMACS 以编辑器为基石,在其上发展其它的功能。以收发电子信件
的软体为例,电子信件软体是以收发信件为环境的基石。任何电子信件
的软体都只有在使用编辑器时,才呼叫相关的编辑器。
EMACS 的出发点就与众不同, EMACS 一切以编辑器为主,任何
的功能都是建基在编辑器之上。
所以,进入 EMACS ,就等於是进入了一个编辑环境,这个
编辑环境提使用者许多功能,让使用者如置身在一个全功能的
作业系统中。 EMACS 自行发展了一个 ``bourne-shell-like'' 的 shell,
除了 EMACS 自己的 shell 外, EMACS 还可以让使用者自行选择
所使用的shell;EMACS 可以读送 e-mail。 EMACS 可以透过 ftp
来编辑远方 host 上的档案,而不需要签入(login) 档案所在的 host;
EMACS 也可做 telnet 与 relogin 的动作。EMACS 也可以读 news;
EMACS 也提供了年历(calendar),可以让使用者查阅日期,也
可以将重要的事情在年历上标示出来;EMACS 又提供了 ``Diary''
的功能,当特定的日期与时间到来时,会在萤幕上将 ``Diary'' 上
的事情显示;EMACS 也有撰写文章大纲的功能。 EMACS 更提供
多种程式的编译功能,让使用者可以在 EMACS 中一边编辑程式
一边编译程式; EMACS 更有自己的 debugger,使程式的除错、
编辑与编译在 EMACS 中同时完成。
所以 EMACS 所提供的不只是一个编辑器而己,它所提供
的是一个整合的工作环境,而这个环境是建立在编辑的基石上。
它希望使用者进入了 EMACS 以後,可以在 EMACS 的环境中完成
所有的工作,不需要离开 EMACS,要离开 EMACS 就是要离开电脑的
时候(logout)。
EMACS 除了是一个整合的工作环境外,它还具有以下的特性:
* display editor
* real-time editor
* advanced editor
* Self-documenting
* Customizable
* Extensible
* support X window enviornment
EMACS 是一个 display 编辑器,因为每一个被编辑的文字都会
被显示在萤幕上。
EMACS 是一个 real-time 的编辑器,因为当新的文字被键入时,
萤幕会在非常短的时间内被更新。
EMACS 的编辑功能不只具备一般编辑器所有的功能,它还提供
如下的功能:
* 文字的填充(filling of text)。
* 程式自动内缩功能。
* 可以同时阅读一个以上的档案。
* 对於字元(characters)、字(words)、列(lines)、句子
(sentences)、段落(paragraphs)、页(pages)以及各种
程式中的 expression 和注解(comments)都有其自有的处理方法。
EMACS 是一个 Self-documenting的软体,因为在任何时候都
可以 `` Ctrl-h'' 指令来得立即的帮助。因为,透过 `` Ctrl-h''
可以得知每一个 EMACS 的指令。
EMACS 是可以 Customizable 的。使用者可视个人的需求,
来改变 EMACS 指令的定义。GNU EMACS 的 Customization 的设定
非常简单,使用者可以很方便的使用它。
EMACS 是 Extensible 的。GNU EMACS 是由 LISP 语言
所写成的函式共同组成的, 函式与函式间的互动关系(dependency)
不强。就因为 EMACS 是由函式所组合而成的,所以可以随时
将函式作增减而不会破坏 EMACS 既有的结构。
EMACS 也针对 X 的视窗环境,提供自己的选单(menus)
和滑鼠按纽(mouse bottons)功能。 EMACS 对於 text-only 的终端机
也提供许多与 X 环境相当的服务品质,例如在文字模式的终端机,
可以同时开启数个的档案,档案可以互相切换,当使用 shell 模式
来执行 shell 指令的同时也可以编辑档案。但本文的只讨论 text-only
的 EMACS 使用法。
以上的种种就是有关 EMACS 的特色。至於如何使用这些功能就
下列章节所要讨论的重点。
BBS水木清华站∶精华区