sublime和vim都是我很喜欢的编辑器,虽然平时打码基本全是用vim,但是还是有时候需要用到sublime。

最近突然很喜欢在sublime下打码,但是发现sublime是不支持中文输入的,搜集了一下资料,最后还是打算采用比较常见的编译一个共享库(libsublime-imfix.so),在sublime启动之前加载。

第一步

先把输入法换成fcitx,卸掉ibus然后选择一个fcitx输入法,我用的是搜狗,如果嫌麻烦,就到搜狗下一个deb直接安装,喜欢折腾就是用命令行添加源安装,这里不详述。

第二步

假设已经安装好了必要的编译环境了,再继续安装一个依赖库:

sudo apt-get install build-essential libgtk2.0-dev

点击下载 sublime-imfix 后编译:

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

如果出错了,自行脑补安装各种依赖库,不然会在本目录生成 libsublime-imfix.so 文件,只要在启动sublime之前加载这个库就支持中文了,前提是已经安装好了sublime(比如sublime的路径在PATH里面),不然需要指定sublime的路径:

LD_PRELOAD=./libsublime-imfix.so sublime

如果我们一直都这样打开这是个很麻烦的事,可以把这个写成一个shell文件放在/usr/bin/或者/usr/local/sbin下面,并且最好把libsublime-imfix.so放到sublime的安装目录,我的是/opt/sublime,subl文件如下:

#!/bin/bash
SUBLIME_HOME="/opt/sublime"
LD_LIB=$SUBLIME_HOME/lib/libsublime-imfix.so
sh -c "LD_PRELOAD=$LD_LIB $SUBLIME_HOME/sublime_text $@"

里面的路径根据自身sublime自行修改,然后我们在命令行下执行subl就能启动支持中文的sublime了。

如果你还是觉得启动麻烦,还有一种方法就是在桌面加入图标:

sudo subl /usr/share/applications/subl.desktop

加入:

[Desktop Entry]
Version=1.0
Name=Sublime_zh
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Text Editor

# 这里需要改成上面写的脚本名subl
Exec=subl
Terminal=false
Icon=/opt/sublime/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
# 这里需要改成上面写的脚本名subl
Exec=subl -n
TargetEnvironment=Unity

如果启动栏没有出现sublime,手动加进去就行了。