歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

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

  在 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 的 話題還有許多,這裡只是環繞在編輯的層面略作解說。



這並不意謂著 EMACS 的介紹已經窮盡了。其實,有關 EMACS 的 話題還有許多,這裡只是環繞在編輯的層面略作解說。



Copyright © Linux教程網 All Rights Reserved