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水木清华站∶精华区