linux下解决sublime text&nbs…

来源:互联网 发布:肿泡眼双眼皮手术知乎 编辑:程序博客网 时间:2024/05/22 12:54
从今天3月份左右,就开始使用 sublime text2 作为我的主要编辑器, Win 下很方便, 但在Linux下,却一直无法正常输入中文,尽管 csslayer 曾在 sublime 的论坛上提出了错误的原因和修正的方法,但似乎sublime 的作者认为输入法在 ubuntu下能够正常使用,于是,问题依然存在 

今天逛论坛,发现 cjacker 君提供了一个解决的方法,测试了一下, 输入法终于可以正常运行了, 不敢独享, 贴过来给大家看看

cjacker通过 LD_PRELOAD 实现了 gtk_im_context_set_client_window 的 加载,使得输入法能够获得焦点 

步骤如下 

1. 保存代码到文件sublime_imfix.c  
01#include
02void gtk_im_context_set_client_window(GtkIMContext *context,
03          GdkWindow   *window)
04{
05  GtkIMContextClass*klass;
06  g_return_if_fail(GTK_IS_IM_CONTEXT (context));
07  klass= GTK_IM_CONTEXT_GET_CLASS (context);
08  if (klass->set_client_window)
09    klass->set_client_window(context, window);
10  g_object_set_data(G_OBJECT(context),"window",window);
11 
12  if(!GDK_IS_WINDOW(window))
13    return;
14  int width= gdk_window_get_width(window);
15  int height= gdk_window_get_height(window);
16  if(width!= 0 && height !=0)
17    gtk_im_context_focus_in(context);
18}

2.  编译成共享库

1gcc -shared -o libsublime-imfix.sosublime_imfix.c  `pkg-config --libs --cflagsgtk+-2.0` -fPIC

3.  运行

1LD_PRELOAD=./libsublime-imfix.so sublime_text

由于我用的是archlinux,sublimetext的运行命令为subl 
将libsublime-imfix.so拷贝到sublime所在文件夹 
在 /usr/bin/subl 文件中,将 
1BIN=/opt/sublime-text/sublime_text
替换为
1exec 'LD_PRELOAD=/opt/sublime-text/libsublime-imfix.so/opt/sublime-text/sublime_text'

附:解决方法原地址:http://www.sublimetext.com/forum/viewtopic.php?f=3&t=7006&start=10#p41343

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我哥哥太爱我了怎么办 如果婚姻无法维持该怎么办 捡了一只流浪狗怎么办 微博加载不出来怎么办 我的脾气很暴躁怎么办 歌单恢复已删除怎么办 家里破产了我该怎么办 对付有心计的人怎么办 上嘴唇无故肿了怎么办 下嘴唇肿了一半怎么办 狗狗早上叫不停怎么办 狗在家乱咬东西怎么办 狗狗晚上一直叫怎么办 金毛幼犬晚上叫怎么办 金毛晚上老是叫怎么办 5岁宝宝总尿裤子怎么办 2岁宝宝尿裤子怎么办 2周岁宝宝尿裤子怎么办 5岁宝宝尿裤子怎么办 模拟人生4不怀孕怎么办 狗狗的毛打结怎么办 狗狗生病了不吃东西怎么办 给领导送礼不收怎么办 国外弃货,货代怎么办 不小心拜了阴庙怎么办 要考试了不想考怎么办? 刚怀孕喝了红酒怎么办 不知道该怎么办的成语 墙纸3年了有味道怎么办 本命佛不要了怎么办 本命佛不想戴了怎么办 刚养的猫怕人怎么办 吃了马蜂蛹过敏怎么办 三星s5边框掉漆怎么办 一楼厕所反味怎么办 左脸颊反复长痘怎么办 头条指数650以后怎么办 6s电池不耐用了怎么办 天刀邮箱满了怎么办 吃了降压药血压还高怎么办 后脖颈发际线低怎么办