Emacs如此优秀的编辑器,如果输入中文不顺畅,不免遗憾。可惜现实是折腾很久也未必用得称心如意,作为一个重度(也许是中毒) Emacs使用者,根据个人经验写下此文,希望对同道中人有所帮助。
在Windows下,我们可以使用Windows下的任何输入法; 但在Linux下却不行,如需使用ibus或者scim输入中文,要额外配置。最简单的方法一,配置LC_CTYPE(语言符号及其分类)为“zh_CN.UTF-8”,但这会影响整个系统的语言设置[1],很多人不喜欢,我也是。方法二,使用桥接方式,比如ibus-el,我用过一段时间,基本满足需求,但小问题不断。比如使用xmonad桌面管理器时时经常出错,配置同步到其它电脑又不行了,而且不能在命令行下面使用。除此之外ibus下面的输入法也挺渣的,好多成语无法连打[2]。
其实Emacs自带很多中文输入法。用M+x set-input-method可以选择各种输入法。如果能用Emacs自带的输入系统,那不管是在CLI下还是GUI下面,体验都是一致的,甚至不同的OS平台(Linux,Windows,Mac)也一致,大大简化了学习成本,切换系统时也不需要想着如何使用不同的输入法,也可以使用git或者dropbox轻松同步配置到任何其它系统。生活美好很多,有没有?可惜的是,这些输入法大多活在上个世纪,不实用。比如输入法Chinese-ccdospy初始状态居然不按常用词频来排序,“我”居然排在第七个,前面是“挝,蜗,涡......”,令人十分崩溃。
当我左右为难时,突然发现一个不错的Emacs集成输入法eim,中国人开发,十分好用,支持五笔和拼音。词库很全,词频也完全没问题,支持词组,自定义很方便。有种雪中被送炭的感觉。向各位挣扎于Emacs中文输入的同学大力推荐, 更要感谢作者的辛勤劳动。安装和配置请参考github主页:https://github.com/wenbinye/emacs-eim 。 截图如下,如果将来它能加入GNU Emacs 的Code Base,那就完美了。
另外作者把默认的设置把Tooltip功能关闭了,因为在没有GTK时有点问题,比如Windows和Mac下,但如果你只是在Linux下使用,可以开启,效果如下,还是挺漂亮的。注释或删除(setq eim-use-tooltip nil)这行即可。
美中不足:
- 不支持使用“.”前向遍历单个候选词, 使用","后向遍历单个候选词,只能翻页。但这点Chinese-ccdospy做到了,用起来非常爽,飞一般的感觉。准备择日向作者提提。如果他没有时间或者不喜欢,那只能我自己hack了。
- 另外eim每页显示7个词,虽比大部分古董输入法的每页10个词好很多,但我觉得还是略多,不超过6个为好。
- 成语的支持还不够好。
REFERENCES:
[1] 英文中文,Ubuntu下设定Emacs输入法的曲折经历
[2] emacs输入中文的解决办法