Next Previous Contents

4. 設定 Emacs

4.1 重音文字 (Accented Characters)

假如您需要以法文或其他西歐語言來寫文件,您必須使用 8-bit 文字 (8-bit characters),才可顯示其有重音的文字。這樣的設置才可以令 Emacs 接受這些文字。

顯示 8-bit 文字

要令 Emacs 顯示 8-bit 文字,您必須將下列指令加入您的 .emacs 檔案:

       (standard-display-european 1)
       (load-library "iso-syntax")
      

假如您在一個不支援 8-bit 的終端機上使用 Emacs,您可以使用 iso-ascii 程式庫 ((load-library "iso-ascii")),它會指令 Emacs 以最相似的形式來顯示這些文字。

8-bit 文字的鍵入

假如您的鍵盤允許您鍵入有重音的文字,那就沒有問題,要不然也可照下列方式來補救:

Iso-acc 程式庫

Emacs iso-acc 程式庫可以讓您使用 7-bit 的鍵盤鍵入 8-bit 的文字。

只要將下列指令加入您的 .emacs 檔案:

      (load-library "iso-acc")
      

然後在使用 Emacs 時,開啟您所需要編輯的檔案,鍵入 Meta-x iso-accents-mode

這樣您若要鍵入法文 caféé 的話,您就可以先鍵入 ' 然後再鍵入 e。總之,您需先鍵入那個文字的重音,之後再鍵入相對的字母(不論大寫或小寫)。以下是一些您可以使用的重音:

  • ' : Acute
  • ` : Grave
  • ^ : Circumflex
  • " : Dieresis
  • ~ : Tilde, cedilla, 與其他特別的例子 (cf iso-acc.el).
  • / : 在一字母上加線,等等。
  • 如果您只需要這些重音符號之一,但不是相對的重音字母,那就在符號之後鍵入一空白鍵。例如,要輸出 l'éléphant,就鍵入 l ' 空白 ' e l ' e ... 即可。

    您可以在 iso-acc.el 檔案內找到所有您需要的重音組合。

    Meta 鍵

    您可以在某些終端機上使用 Meta (或 Alt) 鍵來鍵入 8-bit 文字。例如,您可以鍵入 Meta-i 來輸出 é 這個字。

    但是就我所知, Emacs 將 Meta 鍵用於其他場合,其他的程式庫似乎也不提供這種重音輸入方式。

    不過我們還是可以以下列方式來補救:

          (global-set-key "\ei" '(lambda () (interactive) (insert ?\351)))
                             _                                      ___
          
    

    只要將上列指令加入您的 .emacs 檔案內,您就可以用 Meta-i 來輸出 é。您也可以重新定義您要的組合,只要您用您要的字鍵 (key) 取代 i,用正確的編碼 (code) 取代 351,再配對起來,就可以得到您要的重音字母。您可參考 ISO-8859-1 character set 取得您要的編碼。

    注意! 某些 local modes 或許會重新定義您的字鍵組合。

    8-bit SGML 文字的顯示

    使用 SGML 時,您可以利用巨集 (macros) 來輸入重音文字。例如,要輸入 é 就可用 é。但通常,需要讀取 SGML 的應用軟體都可以讀取 8-bit 文字,所以一般都用不到這種巨集。或許有些軟體仍然無法讀取 8-bit 文字,那麼這時您就可以利用上述巨集了。

    一般時候,在使用 Emacs 時,您可以利用 iso-sgml 程式庫來輸入重音文字。當您要將文件檔案存到磁碟時,它也會幫您把 8-bit 文字轉成 SGML 的格式,以方便您讀取。

    所以有了這個程式庫,您就可以在使用 Emacs 時,輕鬆的輸入或讀取 8-bit 文字,甚至一個不接受 8-bit 文字的軟體,也可以讀取您編寫的 8-bit 文件。

    您只要將下列文字加入 .emacs 檔案內,您就可以使用上述程式庫:

          (setq sgml-mode-hook
          '(lambda () "Defaults for SGML mode."
           (load-library "iso-sgml")))
          
    

    4.2 SGML 模式 (SGML mode)

    當載入 .sgml 相關文件時, Emacs 通常會自動進入 sgml 模式。 假如沒有的話,您可以鍵入 Meta-x sgml-mode 來驅動它進入 sgml 模式。或者將下列指令加入 .emacs 檔案內來設定它自動進入:

          (setq auto-mode-alist
          (append '(("\.sgml$"  . sgml-mode))
                    auto-mode-alist))
         
    

    在 sgml 模式下,您可以選擇要如何輸出 8-bit 文字。比如,使用 Meta-x sgml-name-8bit-mode (或是選單項目上的 SGML/Toggle 8-bit insertion),您可以選擇直接輸出 8-bit 文字的格式,或是輸出 SGML 的格式(即 &...; 格式)。

    在此模式下,您也可以使用 Meta-x sgml-tags-invisible(或是選單項目上的 SGML/Toggle Tag Visibility) 來選擇是否要隱藏或顯示 SGML 標籤。

    4.3 PSGML 模式 (PSGML mode)

    PSGML 模式對於在使用 Emacs 下編輯 SGML 文件很有助益。

    這份文件 psgml-linuxdoc 解釋了如何安裝這個模式,及如何將之應用在 LinuxDoc

    4.4 其他相關模式

    Auto-fill mode

    在一般模式下,當您打完一個段落,您通常會鍵入 Return 以便換到下一行,否則您文章的段落就會相連,無法分清楚。但當您使用 Return 以便換到下一行時,您的段落的右邊通常是參差不齊的。

    但假如您不換到下一行而繼續鍵入文字,在某些編輯器下,您就無法看到右邊邊界外的文字是什麼。

    在這情形下,auto-fill 模式可以幫您改正這情況。當您鍵入超過預設值的第70列時,在這模式下,您就會自動換到下一行。

    下列是執行 auto-fill 模式的指令,並可將一行的寬度調整為80列:

           (setq sgml-mode-hook
                 '(lambda () "Defaults for SGML mode."
                     (auto-fill-mode)       
                     (setq fill-column 80)))
           
    


    Next Previous Contents