输入法

来自 Arch Linux 中文维基

输入法[编辑 | 编辑源代码]

提示:如果以下文本在屏幕上显示为乱码,请确保系统中安装了中文或日文字体。有关可用字体的非详尽列表,请参阅字体#中日韩越文字
注意: 为简单起见,在以下示例中仅提到了键盘,但 IME 实际上可以使用多种输入源,例如使用鼠标或 Wacom tablet 绘制字符。

引自 Wikipedia:Input method

输入法(或输入法编辑器,常缩写为 IME)是一种操作系统组件或程序,它使用户能够通过使用输入设备上原生的字符序列(或鼠标操作)来生成其输入设备上没有的文字。对于拥有比键盘上的按键更多的字位的语言来说,使用一种输入法通常是必要的。

简单来说,IME 是一个允许我们使用拉丁字符输入非拉丁字符的应用程序。

一些 IME 通过一种叫做罗马化的过程来实现这一点,即把非拉丁语的声音音译成与之最相近的拉丁语对应物。例如,日语中“清酒”或“米酒”的写作,也写成さけ,并被罗马化为“sake”。IME 的作用是充当键盘和输入字段之间的中间人,因此,当我们输入“sake”时,它将拦截键盘的输入,用 さけ(由用户选择)替换 “sake”,并为我们输入本地字符而不是我们按下的键。

也有一些 IME 不使用罗马化。其中最突出的是仓颉,它通过将汉字分解为部首,将这些部首与第二套自己的内部部首相匹配,最后再将这些内部部首与拉丁文字相匹配。举例来说,中文的部首 组成。仓颉将这些部首与内部部首匹配,然后将这些部首与拉丁字符 emcw 匹配。这意味着,当我们输入“emcw”时,仓颉会拦截键盘的输入,用 替换 "emcw",并在屏幕上输入该字符。

输入法框架[编辑 | 编辑源代码]

大多数 IME 是作为输入法框架(常缩写为 IMF)的一部分工作的,它是一个允许用户在不同的 IME 之间轻松切换的应用程序。事实上,这正是我们许多人每天在不同的拉丁语键盘布局(如英语、西班牙语、德语等)之间切换时不知不觉地使用的应用程序。

最常见的 IMF 是 IBus(通常用于基于 GTK 的环境,如 GNOME),其次是Fcitx5(大多用于基于 Qt 的环境,如 KDE),然后是 ScimFcitx,最后是 Uim。非常不常见的包括 GcinNimf 和 Hime。[1]此外,Emacs是一个非常流行的文本编辑器,它有自己的内部 IMF。

参见 Wikipedia:List of input methods for Unix platforms

注意: SCIM 目前缺乏维护,因此不推荐使用。

输入法列表[编辑 | 编辑源代码]

下表显示了 Arch 存储库和 AUR 中当前可用的各种语言的 IME。

注意: 在某些情况下,同一个 IME 存在多个软件包。这方面的一个很好的例子是Mozc:作为目前最流行的日语 IME,多年来有多个打包者试图创建一个“完美的”Mozc 包。在下面的表格中,每个 IMF 都包括一个 Mozc 软件包;但这并不意味着这些是用户应该考虑安装的唯一 Mozc 软件包。
警告: 并非所有 IME/IMF 都是最新的;例如,Anthy 不再维护,通常首选 mozc。一些 IME 也相当不受欢迎,并且不提供太多支持。查看相应的 Localization 页面了解更多信息。
Fcitx5 Fcitx IBus uim Emacs Scim Hime gcin Nimf
中文
Rime fcitx5-rime fcitx-rime ibus-rime 内置
拼音 fcitx5-chinese-addons 内置 ibus-pinyin scim-pinyinAUR 内置
注音 fcitx5-chewing fcitx-chewing ibus-chewing scim-chewing 内置
仓颉
简易
快速
fcitx5-table-extra fcitx-table-extra ibus-table-chinese scim-tablesAUR
五笔 内置 内置 ibus-table 内置 scim-tablesAUR
Libpinyin fcitx-libpinyin ibus-libpinyin
SunPinyin fcitx-sunpinyin ibus-sunpinyin
日文
Mozc fcitx5-mozc-utAUR fcitx-mozc-utAUR ibus-mozcAUR emacs-mozcAUR
Anthy fcitx5-anthy fcitx-anthy ibus-anthy 内置 scim-anthyAUR 内置 内置 内置
SKK fcitx5-skk fcitx-skk ibus-skk 内置
KKC fcitx5-kkc fcitx-kkc ibus-kkc
韩文
Libhangul fcitx5-hangul fcitx-hangul ibus-hangul 内置 scim-hangulAUR 内置
越南语
UniKey fcitx5-unikey fcitx-unikey ibus-unikey
Bamboo fcitx5-bamboo ibus-bambooAUR
Indic
Avro (孟加拉语) ibus-avro-gitAUR
Helakuru(僧伽罗语) ibus-helakuruAUR
m17n fcitx5-m17n fcitx-m17n ibus-m17n scim-m17nAUR
OpenBangla Keyboard (孟加拉语) fcitx5-openbangla-gitAUR openbangla-keyboardAUR
Sayura (僧伽罗语) fcitx5-sayura fcitx-sayura
Varnam libvarnam-ibus-gitAUR

配置[编辑 | 编辑源代码]

为了让桌面环境正确地将已安装的输入法框架注册为可用并将其用于处理用户输入,必须相应地配置一组环境变量

注意: 如果没有设置这些变量,GTKQt 都会尝试读取系统的区域设置来决定它们应该使用哪种 IMF,但这个过程依赖于猜测,可能非常容易出错。对于一个正常工作的系统,应该明确地设置这些变量。
提示:如果希望完全禁止桌面环境通过 IMF 处理输入(在 GNOME推荐,因为其与 IBus 紧密集成),那么可以不设置这些变量,或者,对于 GTKQt,可以替换它们的值:GTK_IM_MODULE=gtk-im-context-simpleQT_IM_MODULE=simple

Fcitx5[编辑 | 编辑源代码]

有关详细信息,请参阅 Fcitx5#集成

Fcitx[编辑 | 编辑源代码]

有关详细信息,请参阅 Fcitx

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

IBus[编辑 | 编辑源代码]

IBus 以获得更多讯息。

GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

Uim[编辑 | 编辑源代码]

Uim 以获得更多讯息。

GTK_IM_MODULE=uim
QT_IM_MODULE=uim
XMODIFIERS=@im=uim

Emacs[编辑 | 编辑源代码]

本文或本章节的事实准确性存在争议。

原因: 这需要确认(在 Talk:输入法 中讨论)


根据这个 Fcitx wiki 所述, "(LC_CTYPE)仅适用于一些情况下,包括emacs和java。Emacs 有一个积年的Bug,在 en_US.UTF-8 或类似的区域设置下,它将从不使用XIM(虽然emacs作为一个 gtk 程序,它应使用 XIM)。使用 LC_CTYPE 去修复它是唯一的解决方法。

Scim[编辑 | 编辑源代码]

Scim获得更多讯息。

GTK_IM_MODULE=scim
QT_IM_MODULE=scim
XMODIFIERS=@im=scim

Xim[编辑 | 编辑源代码]

GTK_IM_MODULE=xim
QT_IM_MODULE=xim

参见[编辑 | 编辑源代码]