在 EMACS 的环境下要使用中文,必需先做些设定。因为,中文内码是使用 8 位元位元组,所以必需将系统所使用之位元组型式设为 8 位元,才可以在中文环境下使用 EMACS 。设定系统使其适合使用中文的环境,必需视所使用的作业系统与所使用的 Shell 的 script file 有关,现简述如下:
* 若使用 C Shell/TC Shell 时, .cshrc 的设定方式又因所用的
* UNIX 作业系统不同可分为如下二种方式,
o 使用 Sun OS 作业系统的设定
o setenv LC_CTYPE ISO_8859_1
o 使用 HP-UX 作业系统的设定
o setenv LC_CTYPE american.iso88591
o 在萤幕上显示 8 位元的中文时,设定 8 位元的方式如下:
o stty cs8 -istrip -parenb
* 若使用 Bourne Shell/Korn Shell 时, .profile 的设定方式 又因所用的 UNIX 作业系统不同可分为如下二种方式,
o 使用 Sun Solaris 作业系统的设定
o LC_CTYPE=ISO_8859_1 export LC_CTYPE
o 使用 HP-UX 作业系统的设定
o LC_CTYPE=american.iso88591 export LC_CTYPE
o 在萤幕上显示 8 位元的中文时,设定 8 位元的方式如下:
o stty cs8 -istrip -parenb
除了以上针对 Shell 的 script file 的设定外,要在 EMACS 的环境
输入与显示中文尚必需在 EMACS 的起始档 ``.emacs'' 中加入
如下的设定:
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
(standard-display-8bit 160 255)
虽然经由这些设定,可以使 EMACS 在中文的环境下使用,
但其处理方式还是以英文的模式来处理中文。换言之,就是将二个
byte 所组成的中文字,依然视为二个 byte 的英文字来处理。
这种处理方式,自然有其不便之处。例如,在处理换列时就会
遇到一些问题。因为 EMACS 将中文视为是二个 byte 的字元共同组合
而成。所以,当一列只剩下一个 byte 时, EMACS 会将中文切割
成二个独立的 byte 分别处理之。此时中文字的第一个 byte 会在
此列的最後一个栏位,而下一列的第一个栏位则出现此字的第二个 byte 。
所以,在 EMACS 的环境下中文字很容易被切割,而不知其为何物。
因为 EMACS 处理中文的方式与处理英文无异,所以删除一个
中文字,等於删除二个 byte 的字元(character)。换言之,
一个中文字若使用删除字元的指令 ( Ctrl-d)来删除,必需
使用两次的 Ctrl-d 才能将一个中文字删除。
因为 EMACS 在处理这些七位元之外的字型有其基本上
的问题,所以就有 Mule 的诞生。以下就介绍 Mule 的使用法。
中文化的 EMACS - Mule
Mule 是 "The MULtilingual Enhancement of GNU Emacs" 的简称,它是针对非英语系国家的使用者而设计的 EMACS。 对中文的使用者有很大的助益。 要使 EMACS 能真正的中文化,最好的方法就是安装 Mule。目前最新的 Mule 版本是 Mule 2.0 版(1994 年 8 月 6 日)。 Mule 的设计是以 EMACS 为基础。至於 EMACS 的启始档案 - ``emacs'',也就是 Mule 的启始档案。换言之,使用 Mule 不需在 ``.emacs'' 档中做任何的设定。所以 Mule 可将 EMACS 的 ``.emacs'' 档做为其启始档。若无特殊需求,也可不使用 ``.emacs'' 档。想要取得 Mule 的软体,可以 ``anonymous ftp'' 至以下几个地方取得:
etlport.etl.go.jp [192.31.197.99]: /pub/mule
ftp.mei.co.jp [132.182.49.2]: /public/free/gnu/emacs/mule
sh.wide.ad.jp [133.4.11.11]: /JAPAN/mule/mule-1.0
ftp.funet.fi [128.214.6.100]: /pub/gnu/emacs/mule
cs.huji.ac.il [132.65.16.10]: /pub/gnu/mule
前已述及 Mule 是 ``MULtilingual Enhancement to GNU Emacs''。 它不只处理七位元(7 bits)的 ASCII 字型(ASCII Characters) 以及 ISO Latin-1 的八位元字型(8bits)。它更能处理日文、中文(GB、Big5)、韩文(16 bits ,ISO2022 标准)、泰文 (TIS620)以及越文(VISCII 及 VSCII)。目前适合吾人使用的繁体中文系统是以 BIG-5 为主。 Mule 有如此多的语文可供使用,所以在一个文字档案中,使用者可以混合使用这些不同的语言。使用这些语文,只需借由 Mule 所提供的输入法,将各种不同的文字输入即可。如果是在 terminal emulator 下使用 Mule(如 cxterm、exterm 或 kterm),可使用此 emulator 所提供的输入方法。其实使用 Mule 的方法与使用 EMACS 的方法是一样的, EMACS 的指令在 Mule 中都可以使用。二者最大的差别,就是 Mule 加入了输入法的使用。欲在 EMACS 的环境下使用中文,首先要起动中文系统(例如倚天中文系统),而输入法就是使用中文系统所提供的输入法了。使用 Mule 时也是先起动中文系统(此处仍是以text-only 的终端机为讨论的重点,若使用中文的 X-window 则不需先行启动中文 系统)。,但中文的输入法,则由 Mule 来提供。换言之, Mule 有自已的中文输入法。现在就来讨论如何使用 Mule 的输入法。 要在 Mule 中可以方便的使用输入法,最好将如下的资料加入 ``.emacs'' 档中。 (set-default-file-coding-system *big5*) (set-display-coding-system *big5*) (set-file-coding-system-for-read *big5*) (quail-mode 1) (quail-use-package "zozy") 以上的资料会在使用 Emacs 时产生错误的讯息,解决的办法是将以下的资料加入% ``.emacs'' 档中。 (cond ( (boundp 'mule-version) ;; 给 mule 用的设定区 ;; mule 设定开始 (set-default-file-coding-system *big5*) (set-display-coding-system *big5*) (set-file-coding-system-for-read *big5*) (quail-mode 1) (quail-use-package "zozy") ;; mule 设定结束 ) ;; 给 emacs 用的设定区 ( t ;; emacs 设定开始 (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) (standard-display-8bit 160 255) ) ;; emacs 设定结束 ) Mule 所提供适合中文使用的输入法有,仓颉、注音、拼音、倚天注音以及标点符号等五种。使用这些输入法的方式如下:
1. Ctrl-x - Ctrl-k - Shift-m RET
2. 连续键入 ``Ctrl-x'' ``Ctrl-k'' ``Shift-m'' 三个指令後,按下 RET, echo area 会出现 Quail Package: 此时就可键入所要使用的输入法。
3. 输入法的名称如下所示:
4.
* 仓颉:cj
* 注音:zozy
* 拼音:pinyin
* 倚天注音:etzy
* 标点符号:punct-b5
要使用任何一种输入法,只要在 echo area 处的 "Quail Package:" 後,键入所欲使用的输入法的名称即可。
5. Ctrl-] (self-insert-command)
6. 在任何一种的输入法的状态下,都可切换至英文的状态下。 只要键入 ``Ctrl-]'' 就可使中英文互换。
Mule 对使用中文的人来说,可说是中文化的 EMACS ,而 Mule
的诞生,确实给予中文的编辑者很大的方便。Mule 的使用方法,
除了输入法与 EMACS 略有不同之外,其它与 EMACS 一样。所以,
已熟悉 EMACS 的人,使用 Mule 可说是易如反掌。如果只安装 Mule
而无安装 EMACS 的系统,想要使用 EMACS ,只要进入 Mule 後
一直维持英文的状态就与使用 EMACS 一样了。
EMACS 的入门手册介绍到此,已可暂告一段落。
这并不意谓著 EMACS 的介绍已经穷尽了。其实,有关 EMACS 的
话题还有许多,这里只是环绕在编辑的层面略作解说。