阅读提示:
本文已过时。
最近升级了 Ubuntu Precise,在中文输入法下耗费了不少时间,觉得有必要把折腾过程详细写下来。
IBus 的安装非常简单,直接通过 apt-get
把所用到的相关包一并装上就可以了。有了 im-switch
之后,启用输入法也是一件非常简单的事情,直接
im-switch -s ibus
就可以启用 ibus
输入法了。
然而,IBus 的 Qt 输入模块有一些 bug,只有 IBus 启动之后再启动的 Qt 程序,才可以正常激活输入法。IBus 启动之前就已经启动的 Qt 程序,输入法激活不了,无法输入中文。这带来的一个严重问题是,如果系统在运行过程中 IBus 因为某种原因 crash 了,或者用户出于某些原因需要重启 IBus,那么之前已经启动的 Qt 程序就无法再输入中文了。
为了避开这个问题,我们只能在 Qt 程序里禁用 ibus
输入模块,而回退到原始的 XIM 输入模块,通过 XIM
输入模块来调用
ibus。虽然那个模块功能有限,效率也比较低,但至少是可以正常运作的。具体操作方法是,在执行完
im-switch -s ibus
之后,用文本编辑器打开
~/.xinput.d/zh_CN
(如果你的当前 locale 不是 zh_CN
的话根据你的具体情况打开相应文件),找到
QT_IM_MODULE=xim
一行,将之下一直到
done
的行全注释掉:
然后重启桌面环境,IBus 就能正常使用了。
如果你不在 Linux 下使用 GVim 的话,那接下来的内容你就不需要继续看下去了。
GVim 里有一个 bug,和 IBus 会产生冲突,导致安装了 IBus 之后,GVim 的启动速度会非常慢,每次开启 GVim 都会停顿十几秒钟。虽然这个 bug 已经在 7.3.520 里得到了修复,但 Precise 里带的 GVim 是 7.3.429,因此你还是会被这个 bug 咬到。
解决方法是,到 Debian Sid 的代码仓库里,下载高于 7.3.520 版本的 GVim 包,到自己系统里安装,装完之后启动 GVim 就可以正常了。
所谓“内嵌编辑模式”,就是输入法将正在输入中,还没正式选定的字符串嵌入到目标窗口中,而不是显示在输入法自己的漂浮窗口中。内嵌编辑模式有很多优点,一方面是界面简洁美观,另一方面是可以输入法和目标应用程序能够进行更多交互,实现更多功能。譬如,在 GVim 中,启用了内嵌编辑模式之后,在插入模式下启用输入法,输入一段汉字后,按下 ESC,GVim 知道你要退回命令模式,会直接通知输入法切换回英文模式,不需要你手工关闭输入法,非常方便。
然而,这个非常方便的功能,却因为 GVim 的严重 bug,而导致完全无法正常使用。当 GVim 出现折行的时候,会把输入法的内嵌编辑串搞到一塌糊涂的程度,如图:
因此,为了保证能够正常使用,我们只能忍痛牺牲这个非常好用的功能。运行
ibus-setup
,在“常规”选项卡里找到“在应用程序窗口中启用内嵌编辑模式”,取消这个选项。
IBus 在 KDE 下还有个 bug,每次登录进系统之后,你会发现系统托盘里没有 IBus 图标。在应用程序里按下 Ctrl-Space 后,也看不到输入法工具条。输入文字的时候文字候选框也不出现,但“摸黑”按下数字选字,汉字是可以正常上屏的,可见输入法其实已经启动,只是所有的窗口都不可见而已。
这样的输入法显然是无法使用的,遇到这样的情况,你需要打开一个终端,输入以下命令行:
稍等片刻,输入法就可以正常使用了。可以考虑将这段脚本放到桌面环境登录自动启动目录下,譬如
KDE 下的登录自动启动目录是 ~/.kde/Autostart/
。
可能会影响到日常使用的配置和注意事项就这些,其它的选项,各人根据自己的使用习惯调整就好。祝大家使用 Precise 和 IBus 愉快!