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