Linux 下 Sublime Text 2 不能输入中文这个问题困扰了我大概有两周吧,大概在我刚接触到 Sublime Text 2 的时候。 不过后来就完全没有困扰的样子,因为我开始写英文注释了。

半个月前忘了在哪里看到一个问题,讨论这个问题的解决方案。 仍然是有很多人说装小企鹅输入法可以解决,当然可以解决,但是小企鹅输入法与 Ubuntu 的桌面简直就是天南海北,那界面差异简直没法看。 所以一直以来我都是用 iBus + Sun Pinyin ,写程序的时候用英文注释。 (我要是接着说下去就肯定会有很多人跳出来说小企鹅词库怎么怎么好,皮肤也可以更换。就此打住)

就在看这个问题的时候,发现有人提到了一个输入中文的 workaround ,就是借助一个对话框来输入中文,然后插入到 Sublime Text 2 里面去(InputHelper)。 这个方法让人耳目一新,既不用舍弃自己心爱的输入法,又不用安装修改版的 Sublime Text 2 ,只需要在软件里通过 Package Control 安装 InputHelper 这个包就可以。

不过我尝试了一下,刚开始貌似没办法使用,使用 Ctrl + Shift + Z 没反应,再按 Ctrl + ` 查看控制台的话,可以看到错误( OS Error 13 )。 针对这个情况有一个 patch 的办法,找到这个包的路径(Sublime Text 2 中,Preferences => Browse Packages),修改里面的 inputhelper.py 文件第 19 行,把 args = [location] 修改成 args = ['python2', location] 就好了。

这个东西是怎么工作的呢,你按快捷键 Ctrl + Shift + Z ,会弹出来一个 GTK 的对话框,在这个对话框里是可以使用中文输入法的,还可以按 Ctrl + Enter 换行。 写完中文内容之后,按 Enter ,内容就会被插入到你鼠标所在的位置,或者替换你当前选中的内容。