BBS水木清华站∶精华区

 
Emacs 的基本知识 
 
在未讨论 EMACS 的线上辅助说明时,先谈谈如何启动 EMACS。 
 
     启动EMACS 的方法很简单,只要在萤幕的提示下键入 ``emacs'' 
即可;离开 EMACS, 只要键入``Ctrl-x Ctrl-c''即可离开 EMACS 。 
 
键入 ``Ctrl-x Ctrl-c'' 的方法是,先按住键盘上的 Ctrl 键不放再按下 
英文字的 ``x'' 即可。键入 ``Ctrl-c'' 的方法一样,先按住键盘上的 
Ctrl 键不放再按下英文字的 ``c'' 即可。当然进入与离开 EMACS 
的方法还有多种,这□只是介绍一种方法,让使用者可以很快的使用 
EMACS 的线上辅助说明,至於其它的方法会在以下各章节中陆续提及。 
 
除了进入与离开 EMACS 的方法必须知道外,还有一个指令非常用那就是 
``Ctrl-g''。 ``Ctrl-g'' 可用来取消键入的指令,如果不想执行所键入 
的指令,可以随时将其取消。 
 
EMACS 键入指令的方法有二种: 
 
   * Ctrl 键 
   * Meta 键 
 
所有 EMACS 的指令都可以 Meta 键表示出来,键盘上若无 
Meta 键,则可以 ESC 键来取而代之。常用的 EMACS 指令通常 
会有一个 Hotkey 与之连结。 Hotkey 的构成,通常是以 Ctrl 为 
开头的型态出现。例如 ``Ctrl-x Ctrl-c'' 这一个 Hotkey,则代表了 
EMACS 指令的 ``save-buffers-kill-emacs'' 。若要使用 Meta 键 
来表达与 Ctrl-x Ctrl-c 相同的效果 ,则必须键入 
 
``ESC-x save-buffers-kill-emacs''。 
 
使用 Meta 键,可以利用 
EMACS completion 的功能。因为 completion 可以让 
使用者键入最少的字,就可使系统唤起所欲执行的命令。以下 
就介绍 EMACS的 completion。 
 
EMACS completion的意思是,只要键入字串的部份, 
EMACS 会将其馀的部份自动填入其应在的位置。如果所给予的 
字串不足以决定其馀的部份,EMACS 会将所有可能的结果都列出来, 
以供使用者来决定所需要的字串名称。 
completion 所适用的□围如下: 
 
 
 
   *  指令 
   *  特定目录下的档案 
   *  缓冲区 
   *  EMACS 的变数 
 
 
至於何谓特定目录下的档案、缓冲区以及 EMACS 的变数,会在 
以後的章节中陆续谈及。此处讨论completion ,只是为了 
使用 completion 於 EMACS 的线上辅助说明。 
 
使用 EMACS 的  completion 有三种方法: 
 
 
 
   *   TAB 
           尽可能将其馀的字串填满。 
   *   SPACE 
           将 puncutation 字元之前的字填满,填充的字不会超过一个字以上。 
   *   ? 
           将所有可能的 completions 选择都列出来。 
 
 
使用completion 的做法是将部份字串键入後,再按下 TAB、 
SPACE 或 ? 即可。例如,键入 ``M-x au TAB'' ,则萤幕的最 
下方会出现 ``键入 TAB 则萤幕会在另一个视窗出现: 
 
        Possible completions are: 
        auto-fill-mode                                   auto-lower-mode 
        auto-raise-mode                                  auto-save-mode 
 
若键入 ``M-x au SPACE'',则萤幕的最下方也会出现 ``M-x auto-''。 
若键入 SPACE ,则萤幕的另一个视窗也会出现如下的命令: 
 
        Possible completions are: 
        auto-fill-mode                                  auto-lower-mode 
        auto-raise-mode                                 auto-save-mode 
 
这似乎意味著 TAB 与 SPACE 的功能一样,其实不然,二者的差异 
可从下一个例子看出。键入 ``M-x auto-f TAB'',可得 
``M-x auto-fill-mode'';但键入 ``M-x auto-f SPACE'',只能得到 
``M-x auto-fill-'' ,欲得到 ``M-x auto-fill-mode'',则必须再键入一次 
 SPACE。这就是前面所说的 ``SPACE'' 一次只填一个 ``puncutation'' 
 之前的一个字的意思;而 TAB 则是尽可能的将所有可以判断出来的 
字串呈现出来,其显示字串的长度并不以一个 ``puncutation'' 为限。 
键入 ? 的作用,是在 EMACS 的另一个视窗上显示所有可能的字串, 
此时使用者可根据视窗上的讯息键入适当的命令。例如键入 ``M-x au ?'' , 
萤幕上出现另一个视窗显示如下的资讯: 
 
        Possible completions are: 
        auto-fill-mode                                     auto-lower-mode 
        auto-raise-mode                                 auto-save-mode 
 
键入 ``M-x au ?'' 的地方,则不会执行  completion  的动作, 
这是 ? 与 TAB 、SPACE 最大不同的地方。 
 
若视窗的内容太多无法一次穷尽,此时就必需卷动视窗。卷动视窗 
可以用 ``Ctrl-v'' 与 ``Meta-v'' 二个指令来使视窗做上下的移动。 

BBS水木清华站∶精华区