Emacs 下的中文編輯 .emacs 檔的設定(轉)

post0發表於2007-08-11
Emacs 下的中文編輯 .emacs 檔的設定(轉)[@more@]

在 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 的

話題還有許多,這裡只是環繞在編輯的層面略作解說。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945106/,如需轉載,請註明出處,否則將追究法律責任。

相關文章