其实,在这个文章之前,网上都有好多教程了。不知道是不是因为复制黏贴的传播太多,导致有些字符串的丢失,导致编译失败,so库文件无法载入,从而不能输入中文。折腾了许久之后,终于搞定了。记录下来,方便自己下次重装系统的时候用到。
按照这个教程装好ST之后,按下面的命令步骤来操作即可使用中文输入。
1.下载所需要的文件,并解压:
wget http://y4nwen.googlecode.com/files/sublime_text_chinese-input-method.tar.gz tar zxf sublime_text_chinese-input-method.tar.gz
2.复制库文件到sublime text的安装目录下面:
sudo cp libsublime-imfix.so /opt/sublime_text/ sudo cp sublime_text.desktop /usr/share/applications/
(上面的so库文件是我在deepin系统下面编译而成的,要是你的机子用了该so文件,但提示错误的话,那估计得自己编译文件了。要编译文件的话,请继续看。)先配置好编译的环境:
sudo apt-get install pkg-config sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev
编译刚才解压的 sublime_imfix.c文件,让他变成so文件:
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
然后重复刚才的步骤2即可。问题的解决方法来源。Enjoy~
能输入中文了,但是 terminal插件不能用了,Preferences菜单下的“Browse Packages”也失效了,不知道博主有没有遇到 这个问题。
google的下载地址上不去呀,是不是要考虑放在github上面
我在ubuntu14.04 X64 环境,无法编译共享文件,请博主帮忙看下
In file included from /usr/include/limits.h:25:0,
from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/limits.h:168,
from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/syslimits.h:7,
from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/limits.h:34,
from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:11,
from /usr/include/glib-2.0/glib/gtypes.h:32,
from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/glib-2.0/gobject/gbinding.h:28,
from /usr/include/glib-2.0/glib-object.h:23,
from /usr/include/glib-2.0/gio/gioenums.h:28,
from /usr/include/glib-2.0/gio/giotypes.h:28,
from /usr/include/glib-2.0/gio/gio.h:26,
from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
from /usr/include/gtk-2.0/gdk/gdk.h:32,
from /usr/include/gtk-2.0/gtk/gtk.h:32,
from sublime_imfix.c:9:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
# include
呃。。。遇到问题先Google啊。。
http://www.myexception.cn/open-source/1479461.html
非常感觉博主的回复,google的解决办法都不行。
随后我去找这个文件发现是软链接,失效!原文件不存在了,将gtklib重装一下就好了。
楼主 用sudo subl 不能输入中文 这个怎么解决啊
这个。。。你点击图标启动吧。。不要直接用命令行启动。。
哦 那有时需要root怎么办啊
非常谢谢博主,终于可以输入中文了
这个是不是只针对gtk?我在i3wm里仍旧不能输入中文。
貌似是针对GTK了。。。解决方法来源这里 http://www.sublimetext.com/forum/viewtopic.php?f=3&t=7006&start=10#p41343
更正下:应该是将 /usr/bin/subl 其中的 exec /opt/sublime_text/sublime_text “$@” 改为 exec bash -c ‘LD_PRELOAD=/usr/lib/libsublime-imfix.so /opt/sublime_text/sublime_text ‘$@” 否则在命令行中输入 subl ‘你的文件’ 时不会将文件中的内容加载入 sublime 中
谢谢。
以上操作确实可以输入中文了。
补充一点:若想在命令行( terminal ) 中使用 subl 来启动可输入中文的 sublime ,则需要修改为subl 这个命令的默认执行方式,具体操作如下:
输入命令 sudo gedit /usr/bin/subl 将其中的 exec /opt/sublime_text/sublime_text “$@” 替换为 exec bash -c ‘LD_PRELOAD=/usr/lib/libsublime-imfix.so /opt/sublime_text/sublime_text’ %F 保存即可。
这时就可以在命令行中使用 subl 命令来打开可编辑器中文的 sublime。
重新编译后成功了,非常感谢楼主
楼主你好!我的输入法是FCITX-sougou。但是按照你的说明,还是不能中文。
仔细检查一下。。然后按照步骤来一步一步操作。(要是确认步骤是对的话,先卸载掉这个ST,然后删掉所有的安装文件,重新安装,打破解补丁,然后再编译这个中文的输入法补丁)一般就可以了。
desktop文件里的一句:
Exec=bash -c ‘LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text’ %F
要改成:
Exec=bash -c ‘LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text %F’
不然ubuntu下右键菜单不能打开文件,只会显示untitiled空白文档
感谢修正。。
所以同样desktop文件里下面一处 -n 也要放在单引号里面
但这样修改有一个副作用是从launcher打开sublime的话,点击browser packages无响应,但从控制台打开sublime再点击的话这个没有问题
谢谢你的两篇教程!
博主你好,我把你的那个desktop文件复制过去之后,能输入中文了,但是为什么右键的打开只是打开了软件却没有加载我想要打开的文件呢?有没有遇到这种情况呢?
没有遇到这样的情况哦。很正常使用中{我这里演示的操作系统是deepin 不是ubuntu,不过ubuntu也差不多吧。。不会相差太大}。。。
好吧~~明天尝试重装一下软件,我用的系统是mint,基于Ubuntu,我也觉得应该没多大区别的~~谢谢回复!
你这个是用的 FCITX 吧?能解决 ibus 输入法吗?
没有用ibus。。。暂时不知道呢。。有机会的话再倒腾一下ibus。。。觉得还是fcitx比较好用。。哈哈
博主你的系统版本是多少,为何我的光标跟随问题没有得到解决,你的光标跟随正常吗?
这个是deepin 12.12版。跟ubuntu是一样的系统来的。你所说的光标跟随,是不是指输入法跟随呢?如果是的话,貌似我在这个系统上也没有跟随。输入法会在左下角。。比较难看。。哈哈。不过可以输入就好了。。不奢求什么。嘿嘿嘿。。
hi 博主,我也照着您的方法进行了一系列的操作。但是还是不能输入中文,这是什么问题/?
我之前也有过这样的现象,重新安装一遍sublime text 然后打破解补丁,再按照我的方法来操作就可以了。具体原因我也不是很清楚。