BBS水木清华站∶精华区

 
Emacs 下的中文编辑 .emacs 档的设定 
 
在 EMACS 的环境下要使用中文,必需先做些设定。 
因为,中文内码是使用 8 位元位元组,所以必需将系统所使用之 
位元组型式设为 8 位元,才可以在中文环境下使用 EMACS 。 
设定系统使其适合使用中文的环境,必需视所使用的作业系统与 
所使用的 Shell 的 script file 有关,现简述如下: 
 
   *  若使用 C Shell/TC Shell 时, .cshrc 的设定方式又因所用的 
     UNIX 作业系统不同可分为如下二种方式, 
 
        o  使用 Sun OS 作业系统的设定 
 
              setenv LC_CTYPE ISO_8859_1 
 
        o  使用 HP-UX 作业系统的设定 
 
              setenv LC_CTYPE american.iso88591 
 
        o  在萤幕上显示 8 位元的中文时,设定 8 位元的方式如下: 
 
              stty cs8 -istrip -parenb 
 
 
   *  若使用 Bourne Shell/Korn Shell 时, .profile 的设定方式 
           又因所用的 UNIX 作业系统不同可分为如下二种方式, 
 
 
 
        o  使用 Sun Solaris 作业系统的设定 
 
               LC_CTYPE=ISO_8859_1 
               export LC_CTYPE 
 
 
        o  使用 HP-UX 作业系统的设定 
 
                LC_CTYPE=american.iso88591 
               export LC_CTYPE 
 
 
        o  在萤幕上显示 8 位元的中文时,设定 8 位元的方式如下: 
 
              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 的使用法。 

BBS水木清华站∶精华区