输入法

出自 ArchWiki

输入法

提示: 如果以下部分文字在您的屏幕上显示为乱码,请确保您的系统上已安装中文或日文字体。请参阅 Fonts#中文、日文、韩文、越南文 获取可用的字体列表(非详尽列表)。
注意: 为了简单起见,以下示例中仅提及了键盘,但实际上 IME 可以与多种输入源一起使用,例如用鼠标或 Wacom 绘图板手绘字符。

来自 Wikipedia:Input method

输入法(或称输入法编辑器,常缩写为 IME)是一种操作系统组件或程序,使用户能够通过使用其输入设备上本身可用的字符序列(或鼠标操作)来生成其输入设备上本身不可用的字符。对于字形多于键盘按键的语言,通常需要使用输入法。

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

一些 IME 通过称为罗马化的过程来实现这一点,罗马化是将非拉丁语发音转写为最接近它们的拉丁语等效发音。例如,日语中“清酒”或“米酒”的书写词是 ,也写作 さけ,罗马化为 "sake"。IME 的作用是充当键盘和输入字段之间的中间人,以便当我们输入 "sake" 时,它会拦截键盘的输入,将 "sake" 替换为 さけ(由用户选择),并为我们输入本机字符,而不是我们按下的键。

也有一些 IME 不使用罗马化。其中最著名的之一,仓颉输入法,通过将汉字分解为其部首,将这些部首与自身内部的第二组部首匹配,最后将这些内部部首与拉丁字符匹配来实现这一点。例如,汉字 “酒” 也是 ,它由部首 组成。仓颉输入法将这些部首与内部部首 匹配,然后将这些部首与拉丁字符 emcw 匹配;这意味着当我们输入 "emcw" 时,仓颉输入法将拦截键盘的输入,将 "emcw" 替换为 ,并在屏幕上输入该字符。

输入法框架

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

最常见的 IMF 是 IBus(常用于基于 GTK 的环境,如 GNOME),其次是 Fcitx5(主要用于基于 Qt 的环境,如 KDE)、ScimFcitxUim。非常不常见的包括 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 页面以获取更多信息。
IMF
IME
Fcitx5 Fcitx IBus Uim Emacs Scim Hime Gcin Nimf
Chinese
Rime fcitx5-rime fcitx-rime ibus-rime 内置
Pinyin fcitx5-chinese-addons 内置 ibus-pinyinAUR scim-pinyinAUR 内置
Zhuyin fcitx5-chewing fcitx-chewing ibus-chewing scim-chewing 内置
Cangjie
Sucheng
SmartCangjie
fcitx5-table-extra fcitx-table-extra ibus-table-chinese scim-tablesAUR
Wubi 内置 内置 ibus-table 内置 scim-tablesAUR
Libpinyin fcitx-libpinyin ibus-libpinyin
SunPinyin fcitx-sunpinyin ibus-sunpinyin
Japanese
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
Korean
Libhangul fcitx5-hangul fcitx-hangul ibus-hangul 内置 scim-hangulAUR 内置
Vietnamese
UniKey fcitx5-unikey fcitx-unikey ibus-unikey
Bamboo fcitx5-bamboo ibus-bambooAUR
Indic
Avro[失效链接 2025-01-19 ⓘ] (Bangla) ibus-avro-gitAUR
Helakuru (Sinhala) ibus-helakuruAUR
m17n fcitx5-m17n fcitx-m17n ibus-m17nAUR scim-m17nAUR
OpenBangla Keyboard (Bangla) fcitx5-openbangla-gitAUR openbangla-keyboardAUR
Sayura (Sinhala) fcitx5-sayura fcitx-sayura
Varnam govarnam-ibus-gitAUR

配置

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

注意: 如果未设置这些变量,GTK 和 Qt 都将尝试读取系统的 locale 设置以确定它们应该使用哪个 IMF,但是此过程依赖于猜测,并且可能非常容易出错。为了使系统正常工作,您应该始终选择自己显式设置这些变量。
提示: 如果出于某种原因,您希望完全禁用您的桌面环境通过 IMF 处理输入(由于与 IBus 的紧密集成,不建议在 GNOME 中这样做),那么您可以保留这些变量不设置,或者,在 GTKQt 的情况下,您可以将它们的值替换为:GTK_IM_MODULE=gtk-im-context-simpleQT_IM_MODULE=simple

Fcitx5

有关更多信息,请参阅 Fcitx5#Integration

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:Input method 中讨论)

根据 这个 Fcitx wiki 条目,“在某些情况下,包括 emacs 和 java。Emacs 有一个历史错误,在 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

参见