解决Ubuntu下sublime中不能输入中文的问题

Ubuntu下安装sublime后,不能输入中文,而在其他软件中能正常输入,这是sublime的bug,解决方案是在通过shell在每次运行sublime前自动添加一个动态修正库,解决过程如下:

进入某个目录如~:

cd

新建一个C源代码

subl sublime-imfix.c

并粘贴入如下代码:

#include <gtk/gtkimcontext.h>
void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window)
{
GtkIMContextClass *klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (context));
klass = GTK_IM_CONTEXT_GET_CLASS (context);
if (klass->set_client_window)
klass->set_client_window (context, window);
g_object_set_data(G_OBJECT(context),"window",window);
if(!GDK_IS_WINDOW (window))
return;
int width = gdk_window_get_width(window);
int height = gdk_window_get_height(window);
if(width != && height !=)
gtk_im_context_focus_in(context);
}

在能编译之前可能需要安装依赖包,通过以下命令完成:

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

然后编译C文件:

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

接下来在每次运行sublime程序之前告诉程序链接上这个.so库文件即可在sublime中输入中文,其命令是LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@",其中/opt/sublime_text/是sublime安装的默认目录。命令行的subl还是Dash的Sublime Text,或是文件浏览器里的open with> sublime text,他们都能启动sublime程序,但不必寻找他们的启动入口,而后一一改之。他们都依赖于执行/opt/sublime_text/sublime_text,利用此特点,将/opt/sublime_text/sublime_text二进制另存,之后写个名为/opt/sublime_text/sublime_text的shell脚本,其中实现在执行新建此shell脚本以前的/opt/sublime_text/sublime_text二进制之前,告诉程序链接.so修正库文件。过程如下:

cd /opt/sublime_text/

sudo mv sublime_text sublime_text0

sudo vim sublime_text    # 不熟悉vim者亦可sudo gedit sublime_text

在一行内写入以下语句后保存:

LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text0 "$@"

sudo chmod +x sublime_text

至此应该可以在sublime中输入中文了。

解决Ubuntu下sublime中不能输入中文的问题的更多相关文章

  1. 解决 Ubuntu 下 Sublime Text 无法输入中文的问题

    解决 Ubuntu 下 Sublime Text 无法输入中文的问题 1. 安装依赖库 sudo apt-get install build-essential sudo apt-get instal ...

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

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

  3. Ubuntu安装Sublime Text并输入中文

    Sumblime Text3是一款传说中的神级代码编辑器,具有下面特点: 1.代码高亮,自己主动补全 2.各种插件扩展 3.外观简洁舒适 4.跨平台(Windows,Linux,OS X) 简而言之就 ...

  4. 完美解决ubuntu下sublime中文输入问题

    声明 1.本人整理文章,转载请注明出处. 2.参考资料 http://my.oschina.net/tsl0922/blog/113495 问题描述 在ubuntu下想使用sublime,但是不能输入 ...

  5. Ubuntu菜鸟入门(十八)————解决Ubuntu下Sublime Text 3无法输入中文

    一.下载我们需要的文件,打开终端,输入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git 二.将subl移动到/usr/bin/ ...

  6. 解决qt5在ubuntu下无法调用fcitx输入中文的问题

    如题,在以前安装qt5.2.1的时候就遇到了这个问题.当时上网搜了很多资料,结果都解决不了,发现都是复制来复制去. 这次因为要用qt5.3.0在ubuntu下写个程序,所以不解决这个问题不行了.就继续 ...

  7. Ubuntu下搜狗拼音突然无法输入中文的解决办法

    搜狗输入法前段时间还可以正常使用,突然今天无法输入中文了.这种情况在Ubuntu中非常常见,可能的原因有3个:1.可能依赖有问题.2.配置文件出错了.3运行出错,需要重新启动一下. 因为我的这个是突然 ...

  8. ubuntu15.10下sublime text3 无法输入中文解决办法

    原文链接:http://geek.csdn.net/news/detail/44464 1.首先保证你的电脑有c++编译环境 如果没有,通过以下指令安装 sudo apt-get install bu ...

  9. ubuntu15.04下sublime text不能输入中文的解决

    原因是由于中文输入法的输入焦点不能插入sublime的输入窗口中,需要使用代码强制插入输入焦点. 代码是cjacker 君提供的,可以看原始的讨论帖子: http://www.sublimetext. ...

随机推荐

  1. MyBatis学习总结2

    这一篇讲述MyBatis对数据库的CRUD操作,内容不做重复,只做添加:查看学习总结1 一.使用MyBatis对表执行CRUD操作——基于XML的实现 在SQL映射文件userMapper.xml中添 ...

  2. hdu1501Zipper(记忆化搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1501 搜了下记忆化搜索是嘛 然后就看到这个题了 不过一不小心看到代码了 代码又那么短 一不小心给记住了 然后看了 ...

  3. oracle rac scan ip 用途 原理

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  4. target与currentTarget的区别?

    通俗易懂的说法: 比如说现在有A和B, A.addChild(B) A监听鼠标点击事件 那么当点击B时,target是B,currentTarget是A 也就是说,currentTarget始终是监听 ...

  5. 1.进入debug模式(基础知识列表)

    1.进入debug模式(基础知识列表)1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ========================= ...

  6. 浏览器中的XML与JavaScript

    浏览器中的XML与JavaScript 在处理XML前,你需要在JavaScript中获取它.这一部分展示了一些不同的方法用来在JavaScript中获取XML并且对它进行处理. XML的节点类型 在 ...

  7. inno setup 打包

    ; -- Example1.iss -- ; Demonstrates copying files and creating an icon. ; SEE THE DOCUMENTATION FOR ...

  8. [Stephen]页面实现瀑布流源码

    项目中使用到的瀑布流代码 @using tZ.Pms.Biz @using tZ.Mvc.Base @model IPageInfo @{ ViewBag.Title = Model.WebTitle ...

  9. linux下的oracle11gR2静默安装,经验分享

    说明: 1.我的linux是64位的redhat6.5,安装的oracle版本是11.2.0的. 2.我这是自己安装的linux虚拟机,主机名为ora11g,ip为192.168.100.122 3. ...

  10. POJ2773 - Happy 2006(欧拉函数)

    题目大意 给定两个数m,k,要求你求出第k个和m互质的数 题解 我们需要知道一个等式,gcd(a,b)=gcd(a+t*b,b) 证明如下:gcd(a+t*b,b)=gcd(b,(a+t*b)%b)= ...