Fedora 25下开启Sublime Text 3的中文输入支持

因为之前一直没怎么使用Sublime Text 3做中文输入,没太在意这个部分,但是最近开始了写博客,总不可能一直写英文,Sublime又是我一直用来的编辑器,虽然有点麻烦,但是还是配置起来用。

经过测试,中文输入是支持了,但是我用的FZUG源的搜狗输入法并不稳定,经常会崩溃到无法关机。
后来我换了Google的拼音输入法,目前还未崩溃。

环境支持

  1. 操作系统为Fedora 25.
  2. fcitx
  3. Sublime Text 3
  4. (可选)懒人可以通过添加FZUG源,然后省去复杂的安装搜狗输入法(不推荐)步骤,细节在接下来内容介绍。

卸载iBus,安装fcitx

Fedora一般默认安装的输入法管理器是iBus,而如果要把中文输入到Sublime Text 3中,则需要fcitx,所以使用

1
$ sudo dnf remove ibus

卸载iBus,以及关闭GNOME对iBus的支持:

1
$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

安装fcitx:

1
$ sudo sudo install fcitx fcitx-configtool -y

指定输入法模块:

1
$ vim ~/.bashrc

在文件末尾添加:

1
2
3
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

安装中文拼音输入法:

1
$ sudo dnf install fcitx-googlepinyin fcitx-cloudpinyin -y

注销或者重启系统,通过Ctrl+Space就可以切换输入法。
或者将鼠标指向屏幕左下方,会出现:

点击之后:

选择google输入法:

在配置中选择Addon,在底下的搜索栏搜索cloud得到Cloud Pinyin,双击设置:

修改云拼音源为baidu,这样就不会因为被墙而使用不了云拼音。

添加插件使得Sublime Text 3支持中文输入

笔者假定Sublime Text 3已经安装好,并且目录为/opt/sublime-text

下载插件源码

就这个文件就可以了。

执行命令生成动态库:

1
$ gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC

注意: 如果编译报错缺失<gtk/gtk.h>,证明系统缺少gtk2.0库的支持,执行命令:

1
$ sudo dnf install gtk2-devel -y

补全依赖,再次执行编译动态库命令。

先执行:

1
$ LD_PRELOAD=./libsublime-imfix.so sublime_text

测试sublime能否支持中文输入,一般都是可以了。
通过的话,执行:

1
$ cp ./libsublime-imfix.so /opt/sublime-text/

将动态库复制到sublime的目录下。

之后修改:

1
$ sudo vim /usr/share/applications/sublime_text.desktop

将原来的:

1
Exec=/opt/sublime-text/sublime_text %F

改为:

1
Exec=bash -c "LD_PRELOAD=/opt/sublime-text/libsublime-imfix.so exec /opt/sublime-text/sublime_text %F"

至此,从GNOME启动sublime text 3可以支持fcitx的中文输入了。

(可选1):修改/usr/bin/subl:

1
2
3
#!/bin/sh
LD_PRELOAD=/opt/sublime-text/libsublime-imfix.so
/opt/sublime-text/sublime_text "$@"

(可选2):添加一行到/etc/profile:

1
LD_PRELOAD=/opt/sublime-text/libsublime-imfix.so

笔者最近将系统更新到了Fedora 27,上述的配置已经无效了,尝试了网上一些方法之后最终放弃了,更改为用iBus+VSCode方案,目前流畅使用中。