輸入法

出自 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

參見[編輯 | 編輯原始碼]