解决Ubuntu下Sublime Text 3无法输入中文

sublime很好用,但是ubuntu下不能输入中文,这是一个很大的问题。不知道为什么开发着一直也不解决,好在还是有高手在,总能找到方法。网上方法很多,但是也很乱,现在我将自己的经验总结一下。

首先,我参考了好几篇文章,都是蛮不错的,先列出来:

  1. sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题。可用这个的强烈推荐用这个
  2. 完美解决 Linux 下 Sublime Text 中文输入:讲的比较明白,也可用参考。
  3. Ubuntu下Sublime Text 3解决无法输入中文的方法: 讲解的最清楚了,建议看看。

我的方法

1.下载我们需要的文件,打开终端,输入:

git clone https://github.com/lyfeyaj/sublime-text-imfix.git

2.将subl移动到/usr/bin/,并且将sublime-imfix.so移动到/opt/sublime_text/(sublime的安装目录)
终端输入:

cd ~/sublime-text-imfix
sudo cp ./lib/libsublime-imfix.so /opt/sublime_text/
sudo cp ./src/subl /usr/bin/

3.用subl命令试试能不能启动sublime,如果成功启动的话,应该就可以输入中文了。
终端输入:

LD_PRELOAD=./libsublime-imfix.so subl

4.但是这样子只能用上述命令行启动才能输入中文,我们需要更简单的办法,我选择新建一个shell脚本,很简单,就一句话。
sublime新建文件输入:

#!/bin/bash
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so subl

然后将文件另存为sublime(注意:没有后缀),并且放到/home文件夹。

5.至此,所有工作完成了。想要启动,直接终端输入:bash ~/sublime,就可以启动sublime,并且能够输入中文。

6.如果不需要输入中文,直接按以前的方式打开即可。建脚本文件的目的就是方便打开能输入中文的sublime。

说明

这只是一个权宜之计,完美的解决办法还没有,只能等sublime开发者更新。
网上所谓的完美解决,还是有问题,比如如果更改桌面快捷方式,那么sublime的Browse Packages功能不能使用,当然,还有其他问题。为了正常使用,我就没改。当然如果你中文输入比较多,还是建议修改桌面快捷方式,毕竟那会方便很多,具体怎么样,自己取舍。

另外,输入法不跟框,暂时无解啊。



文/Vaayne(简书作者)
原文链接:http://www.jianshu.com/p/bf05fb3a4709
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。


确实无法根治,LD_PRELOAD会影响sublime的子进程,就是外部调用,原因是gtk2和gtk3的版本冲突……这就是中文输入的代价……官方也不修复一下

在你的方法下弄好啦,谢谢~
不过你最后把shell文件放在/home下运行有点麻烦啊,直接放在/usr/bin里岂不是更好?

Vaayne: @codekun 都行,方便就好

MonsterOOF: @codekun 有个东西叫做快捷键,既然都用Linux了,想必也用键盘多于鼠标了。Ubuntu下自定义一个快捷键,命令为subl,这样子就相当于命令行启动了。设置快捷键:设置——键盘——快捷键

我忘记是不是直接能输入中文了,但之前直接点'desktop'图标是不行的。看了你的文章,做了前面两步有点疑惑,因为我安装完的时候就提示我可以用'subl',并且当时我或许是可以中文输入的(不记得了),但是进行到你的第三步,我确认可以在teminal输入'subl'出来的sublime是可以中文输入的,所以我到‘/usr/share/applications/‘里面的Sublime创建的'.desktop’文件,执行命令改成了‘subl’,直接点击也能中文输入了

Vaayne: @liangzr 做前面的步骤是因为我的安装完成后不能直接从命令行启动,如果可以启动就不需要,后面是给启动命令加个参数,确保那个插件的运行。

按照第一个方法成功了,在没有打开sublime的情况下终端键入subl可以打开支持中文的窗口。
我有一个方法跟大家分享一下,实现了用快捷键将当前的文件用支持中文输入的sublime打开。前提是这个文件格式没有绑定其他build命令。
原理:利用sublime build执行命令:pkill subl && subl ‘文件路径’
参考:
//build文件
{
"shell_cmd": "pkill subl && subl \"${file}\"",

"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",

"working_dir": "${file_path}"
}
注意: 按快捷键之前最好保存一下打开的文件,毕竟是pkill。

所有方法都试了一遍,都失败了

ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

以C威武: @石占 我也是这样

Ign0re: @以C威武 我今天试了下 也是 ... :broken_heart:

你好,我按照你的方法来做,第三步的时候可以打开sublime,可是不能输入中文

我安装的build 3083 ,上述的方法我是按步做了,最终都不可以输入中文 , :sob: 
问了一下同事他用的非3083 比其要低几个版本,但是是3以上,他照做了可以输入中文。
能否贡献一下你的sublime安装软件。tomhat@126.com 谢谢!

Vaayne: @7c299d56da23 额,直接拿同事的不是更方便,我现在转战Mac了,没有包了。

非常感谢您提供宝贵的经验我的问题已经全部解决!

解决了我的问题,感谢~
我用 alias 设置启动 可以参考下
在.bashrc 或 .zshrc 里加一行
alias subl_cn="LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so subl"
保持后执行 source .bashrc
然后就可以通过subl_cn 启动支持输入中文的sublime text

Ign0re: @Gnostikoi ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
亲爱的 请问你知道这是什么情况吗

十分感谢!很给力地解决问题啦!

ERROR: ld.so: object './libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
step3 wrong ,请问怎么解决呢

Ign0re: @StephenRo 我今天试了也是..

日暮涵水: 这是路径错了。你把路径改一下。

/usr/share/applications/sublime_text.desktop
把Exec改为/usr/bin/subl就可以啦。

cptcrazy: @Bob_Zhuang 能说的再详细点吗?我也是遇到以下错误
ERROR: ld.so: object './libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值