Emacs
如果您想用法语或任何其他西欧语言编写文档,您将需要 8 位字符。以下是如何设置 Emacs 以使其接受此类字符。
要让 Emacs 显示 8 位字符,您需要在您的 .emacs
文件中添加以下行
(standard-display-european 1) (load-library "iso-syntax")
如果您在不支持 8 位字符的终端上使用 Emacs,您可以使用 iso-ascii
库 ((load-library "iso-ascii")
),它会告诉 Emacs 以其最佳近似值显示此类字符。
如果您的键盘允许您输入带重音的字符,则没问题。如果不是,这里有一些补救措施
iso-acc
库Emacs iso-acc
库将允许您从 7 位键盘输入 8 位字符。
要使用它,请在您的 .emacs
文件中插入以下内容
(load-library "iso-acc")
然后,在运行 Emacs 并打开您需要编辑的文件后,键入 Meta-x iso-accents-mode
。
然后,您可以通过键入 ' 然后 e
来输入法语单词 café 的 é。更一般地,您将通过先键入重音符号,然后键入要重音的字母(大写或小写)来键入带重音的字符。以下是您可以使用的重音符号
'
:锐音符`
:钝音符^
:抑扬符"
:分音符~
:波浪号、软音符以及其他特殊情况(参见 iso-acc.el)。/
:用于划掉字母等。如果您需要这些字符之一而不是带重音的字母,请在其旁边键入一个空格。例如,要键入 l'éléphant,请键入 l ' spc ' e l ' e ...
您将在 iso-acc.el
文件中找到所有可能的组合。
某些终端允许您使用 Meta(或 Alt)键输入 8 位字符。例如,按 Meta-i 将得到 é 字符。
但是 Emacs 保留了 Meta 键用于其他用途,而且据我所知,没有哪个库允许您将其用于带重音的字符。
这是一个解决方案
(global-set-key "\ei" '(lambda () (interactive) (insert ?\351))) _ ___
这样一行代码,如果插入到您的 .emacs
文件中,将允许您使用 Meta-i 组合键输入 é。如果您用正确的键替换 i 并用正确的代码(代码取自 ISO-8859-1 字符集)替换 351,您可以以这种方式重新定义您需要的组合。
警告! 某些局部模式可能会重新定义此类组合键。
在 SGML 中,您可以使用宏输入带重音的字符。例如,é 键是 é。通常,需要读取 SGML 的应用程序可以读取 8 位字符,因此无需使用这些宏。但有些可能无法做到这一点。鉴于有一种方法可以解决这个问题,让这些崩溃将是一种浪费。
iso-sgml
库将允许您像往常一样在 Emacs 下输入带重音的字符,但在将文件保存到磁盘时,它会将这些 8 位字符转换为它们的 SGML 等效形式。
因此,借助此库,在 Emacs 下键入和重新阅读您的文档非常容易,您可以确保非 8 位干净的应用程序会接受您的文档。
要使用此库,您只需将以下行添加到您的 .emacs
文件中
(setq sgml-mode-hook '(lambda () "Defaults for SGML mode." (load-library "iso-sgml")))
加载扩展名为 .sgml 的文件后,Emacs 会自动进入 sgml 模式。如果它没有自动进入,您可以手动键入 Meta-x sgml-mode
来告诉它这样做,或者通过将以下行添加到您的 .emacs
文件中来自动执行此操作
(setq auto-mode-alist (append '(("\.sgml$" . sgml-mode)) auto-mode-alist))
此模式将让您选择如何插入 8 位字符。例如,使用 Meta-x sgml-name-8bit-mode
(或菜单项 SGML/切换 8 位插入),您可以选择按原样键入 8 位字符,或者以 SGML 形式键入,即以 &...; 形式。
它还可以让您隐藏或显示 SGML 标签,使用 Meta-x sgml-tags-invisible
(或菜单项 SGML/切换标签可见性)。
PSGML 模式对于使用 Emacs 编辑 SGML 文档非常有帮助。
psgml-linuxdoc 文档解释了如何安装此模式并将其与 LinuxDoc 一起使用。
在正常模式下,当您键入一个段落并到达行尾时,您必须自己使用 Return 键才能转到下一行,否则您的行将贯穿整个段落。当您使用 Return 键转到下一行时,您会得到一个右边距不齐的段落。
如果您让某些行超出合理的宽度,您将无法在某些编辑器中看到它们。
自动填充 模式自动化了这个枯燥的任务:当您超过某个列(默认为第 70 列)时,您会自动转到下一行。
这就是如何使用此模式,并将您的行宽设置为 80
(setq sgml-mode-hook '(lambda () "Defaults for SGML mode." (auto-fill-mode) (setq fill-column 80)))