Debian[Ubuntu]下SublimeText3(Build 3083)中文输入问题

639 查看

问题

在Debian(ubuntu或其他发行版也可以试试)系统中,安装Sublime Text 3(Build 3083)时,遇到无法输入中文的问题。

解决步骤

第一,下载源码

从官网下载最新版ST3,我选择的是Ubuntu64 bit那一行对应的 tarball 版本。

第二,解压并安装

sudo mv ~/下载/sublime_text_3_build_3083_x64.tar.bz2 /opt/
cd /opt/
tar vxjf sublime_text_3_build_3083_x64.tar.bz2

然后创建一个软链接,这样就可以在命令行中直接启动Sublime:

sudo ln -s /opt/sublime_text_3/sublime_text /usr/bin/sublime

此时,在终端输入sublime命令可以启动ST3,但是无法输入中文!经过不懈努力(把网上说的方法都试遍了),无意间在GitHub发现了一个仓库。此仓库可以解决我的问题!

第三,编译插件

首先是克隆这个仓库:

git clone https://github.com/Firef0x/SublimeText-i18n-zh.git

然后定位到 ~/SublimeText-i18n-zh/src/fix/imfix

再按照sublime_imfix.c中的注释来操作:

编译

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

正常情况下会得到一个库文件libsublime-imfix.so,如果编译需要的依赖不足的话请看看提示,然后将那些依赖升级。比较常见的问题是,提示 No package 'gtk+-2.0' found 没有,那么安装一下就行了:sudo apt-get install libgtk2.0-dev

使用

libsublime-imfix.so 拷贝到 /opt/sublime_text_3/ 目录;

然后在终端下敲入 LD_PRELOAD=./libsublime-imfix.so sublime 来启动ST3

发现软件可以输入中文了!

第四,写脚本调用ST3

编写一个shell脚本,命名为:subl,名字可以随便取。输入以下内容:

#!/bin/bash
LD_PRELOAD=/opt/sublime_text_3/libsublime-imfix.so sublime

然后放到 /usr/bin/ 中就可以在任意目录中输入命令了:

sudo mv ~/subl /usr/bin/

注意:

subl 文件一定要给 755 权限

sudo chmod 755 ~/subl

总结

其实,我想编写一个可以传入参数的脚本来调用ST3,就像常用的命令那样,在命令后面输参数来实现不同的功能。

格式:

subl [文件或目录]

如果参数为目录,就打开带有以该目录为根目录的目录树的ST3窗口;

如果参数为文件,就打开这个文件。

当我以 sublime (这个命令是以不调用Libsublime-imfix.so的方式来启动ST3)命令加参数的方式调用ST3就可以实现上诉功能。本来是想实现subl这个功能的,但是,学Shell还需要几天来适应,所以,只有留给大家来扩展了。

等我掌握了shell再来实现这个功能吧^.^