智能中文输入法
SCIM 是由 Su Zhe (或 James Su) 大约在 2001 年开发的一个输入法框架,类似于 IBus 或 Uim。
其目标是
- 作为当前可用的输入法库的统一前端。目前支持 uim 和 m17n 库的绑定。
- 作为 IIIMF 输入法框架的语言引擎。
- 提供尽可能多的本地 IMEngines。
- 支持尽可能多的输入法协议/接口。
- 支持尽可能多的操作系统。
安装
输入法引擎
目前 SCIM 项目拥有广泛的输入法(有些可能需要其他库),涵盖超过 30 种语言,包括(简体/繁体)中文、日文、韩文以及许多欧洲语言。以下是一些示例(更多示例可在此处找到)
- scim-chewingAUR - 中文
- scim-pinyinAUR - 中文智能拼音。
- scim-tablesAUR - 基于中文五笔或其他码表
- scim-anthyAUR[链接已损坏: 找不到包] - 日文
- scim-hangulAUR - 韩文
uim 可以作为 SCIM 的引擎,通过使用 scim-uimAUR。
配置
正确配置 SCIM 需要以下三个步骤:
- 导出指定所用输入法的环境变量。
- 修改与区域设置相关的文件。
- 最后,启动 SCIM。
简单场景
如果您只是想紧急在任何 桌面环境或 窗口管理器中使 SCIM 工作,请将以下行添加到您的 xprofile 文件中,然后重启:
~/.xprofile
export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim" scim -d
这些行也可以添加到其他在启动时运行的文件中,例如:/etc/profile、~/.profile、~/.xinitrc 或 ~/.config/openbox/autostart(在使用 Openbox 时)。
XMODIFIERS=urxvt。这是配置 XIM (X Input Method) 与 SCIM 一起工作的非常基础的示例。不推荐使用 XIM,因为它存在相当多的限制。
GTK 注意事项
如果您使用 GNOME,请编辑 /etc/gtk-2.0/gtk.immodules 文件,在末尾添加以下内容:
/etc/gtk-2.0/gtk.immodules
"/usr/lib/gtk-2.0/immodules/im-scim.so" "scim" "SCIM Input Method" "scim" "/usr/share/locale" "ja:ko:zh"
如果您的 LC_CTYPE 或 LANG 是 en_US.UTF-8,请将 ja:ko:zh 更改为 en:ja:ko:zh。
进行这些更改后,请务必重启。您可以通过执行 gtk-query-immodules-2.0 来查看系统中可用的输入法模块。
如果在进行这些更改后 SCIM 无法与 GTK 应用程序一起使用,请检查 GTK_IM_MODULE_FILE 环境变量是否设置为 /etc/gtk-2.0/gtk.immodules。
您可以使用另一个文件(在本例中为 ~/.immodules),该文件包含有关输入法模块的必要信息,方法是将以下行添加到您在上面章节中选择的文件中。
gtk-query-immodules-2.0 > ~/.immodules export GTK_IM_MODULE_FILE=~/.immodules
与区域设置相关的文件
如果您的键盘区域设置不是 en_US.UTF-8(或 en_US.utf8),您需要根据以下示例修改 ~/.scim/global(或 /etc/scim/global 以将这些设置应用于所有用户)的第一行:
/SupportedUnicodeLocales = en_US.UTF-8,de_CH.UTF-8
并用您的区域设置替换您的 de_CH.UTF-8。
/etc/locale-gen 中取消注释它,然后以 root 身份执行 locale-gen),并且必须受 SCIM 支持(大多数 *.UTF-8 区域设置都支持)。如果您不知道当前有哪些区域设置是激活的,可以检查一下:
locale -a
(或者您可以查看 /etc/locale.gen)。
区域设置的进一步故障排除
如果您在安装 SCIM 和必要的输入法表后,SCIM 仍然无法工作,那么您需要将 /etc/profile 中的 LC_CTYPE 环境变量设置为您打算使用的区域设置。只需为 LC_CTYPE 创建一个条目,例如:
LC_CTYPE="zh_CN.UTF-8" # if you want to type simplified chinese
最后,您需要使用 locale-gen 命令来生成区域设置。
执行 SCIM
可以直接执行 scim 命令来运行 SCIM,但通常将其作为守护进程启动:
scim -d
您可以将上述命令放在一个脚本文件中并自动执行它。通常放置在 ~/.xinitrc(在环境变量之后,在 DE/WM 之前)、/etc/profile(在环境变量之后)或 ~/.config/openbox/autostart(在环境变量之后,可能还需要一个 sleep 命令)。
GNOME 注意事项
如果您使用 GNOME 作为桌面环境,上面的命令似乎无法按预期工作。而是,您需要执行以下命令:
scim -f x11 -c simple -d
如果您希望 SCIM 在启动时自动启动,请转到 System > Preferences > Session 并使用上面的命令创建一个新条目。
scim -f socket -c socket -d 命令,那么您的 SCIM 配置将无法修改。KDE 注意事项
如果您使用 KDE 作为桌面环境,上面的命令似乎无法按预期工作。而是,您需要执行以下命令:
scim -f socket -c socket -d
故障排除
LWJGL (Lightweight Java Game Library) 失去键盘焦点
Chrome/Chromium 不接收输入
编辑 .xinitrc 或 .xsession 文件。
~/.xprofile
export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="xim" export QT_IM_MODULE="scim" scim -d
这是一个相当粗糙的解决方法。此外,即使有这个解决方法,韩国用户在使用 Chrome/Chromium 时可能会发现 SCIM 不可用,因为当按下空格键或在单词末尾按下其他修饰键时,编辑字符串会消失。