GNU Emacs 是否兼容 Unicode,或者仅通过 Mule 实现多语言感知?

GNU Emacs 是否兼容 Unicode,或者仅通过 Mule 实现多语言感知?

我读到过 GNU Emacs 通过一个名为Mule(多语言环境) 的系统来处理国际脚本。

我还读到(某处,不久前),(近年来)正在采取一项举措使其Unicode符合要求,并且这项举措正在版本 23(-ish?)中实施。

我在 中输入了一些 Unicode 文本(例如 कैसे)gedit,并成功将其复制到 Emacs 中。复制粘贴在两个方向上都有效。

然而,在 Emacs 中,使用Ctrl+Shift+U键入单个 Unicode-Codepoint 不起作用,并且 Emacs 也无法识别 IBus 输入法编辑器。

Emacs 和 Unicode 的现状如何?
... 是否可以将 IBus IME 与 Emacs 一起使用?

答案1

简短回答:总线ibus.el;Gnome Ctrl+Shift+U⇒ EmacsC-x 8 RET


Emacs 对 8 位以上字符集的支持源自,它与 Unicode 一样古老(它源于对日语的支持),比对 Unicode 的广泛支持要早得多(就支持 Unicode 文本、字体等的程序而言)。GNU Emacs 23 提供了良好的 Unicode 支持,这是自 Ubuntu 10.04 以来的默认版本。GNU Emacs 22 提供了可接受的 Unicode 支持,这是自 Ubuntu 8.04 以来的默认版本。以前的版本做过对 Unicode 有一些支持,但更常见的是遇到错误或限制。

Emacs 不使用 Gnome,因此您无法在其中使用 Gnome 输入法。例如,Ctrl++用十六进制代码插入代码点是 Gnome 功能,因此它在 Emacs 中不起作用。原生 Emacs 等效项是+ ,由于历史原因Shift,它后面必须跟八进制代码;如果您更喜欢十六进制,UCtrlQ定制 read-quoted-char-radix为值 16。类似的 Emacs 命令是C-x 8 RET(ucs-insert;如果经常使用它,您可能希望将其绑定到更短的键序列),其后可以跟十六进制代码点或unicode字符的名称,并完成。

Emacs 有其自己的一套输入法,也可以使用系统输入法,例如用户界面(安装uim-el总线支持相对较新;你需要ibus.el,Lucid 中没有,我认为 Maverick 中也没有;另请参阅Emacs wiki 上的 IBus

答案2

GNU Emacs 23.x 内置了对 UTF-8 编码文本的 Unicode 支持。它还提供了对 UTF-16 的支持。我强烈建议您安装emacs23软件包以避免 Emacs 中与 Mule 问题相关的几个错误。

并尽量避免智能输入总线问题,你可以安装安西输入系统。我发现它对日语非常有效:

sudo apt-get install anthy anthy-el

安装后,编辑 .emacsrc 以包含以下文本:

; Set load path for anthy.el
(push "/usr/share/emacs/site-lisp/anthy/" load-path)

; Load anthy.el
(load-library "leim-list")
(load-library "anthy")

;; Workarounds and customizations

; Fix slow input response in emacs23
(if (>= emacs-major-version 23)
(setq anthy-accept-timeout 1))

; Set japanese-anthy as the default input-method
(setq default-input-method "japanese-anthy")

; Shift-space to toggle anthy-mode (default is Ctrl-\)
(global-set-key (kbd "S-SPC") 'anthy-mode)

; Map wide-space to hankaku-space
(setq anthy-wide-space " ")

如果这对您不起作用,您可能发现了 Emacs 对 iBus 的支持存在错误。

相关内容