博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Linux下 sublime text2输入法问题的方案
阅读量:7187 次
发布时间:2019-06-29

本文共 1332 字,大约阅读时间需要 4 分钟。

hot3.png

从今天3月份左右,就开始使用 sublime text2 作为我的主要编辑器, Win 下很方便, 但在 Linux下,却一直无法正常输入中文,尽管 csslayer 曾在 sublime 的论坛上提出了错误的原因和修正的方法,但似乎 sublime 的作者认为输入法在  ubuntu下能够正常使用,于是,问题依然存在

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

cjacker 通过 LD_PRELOAD 实现了 gtk_im_context_set_client_window 的 加载, 使得输入法能够获得焦点
步骤如下
1.  保存代码到文件sublime_imfix.c 
#include 
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 != 0 && height !=0) gtk_im_context_focus_in(context);}

2.  编译成共享库

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

3.  运行

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

附:解决方法原地址:

转载于:https://my.oschina.net/Khiyuan/blog/98713

你可能感兴趣的文章
打印html页面出现空白段落问题
查看>>
我的友情链接
查看>>
用按位或解决问题
查看>>
内网地址的网段
查看>>
克隆虚拟机、Linux机器相互登录
查看>>
oracle中使用decode进行数据的列转换为行的试验
查看>>
快速构建Windows 8风格应用23-App Bar概述及使用规范
查看>>
Saltstack系列(二) Saltstack分组
查看>>
.NET的XMPP开发包 MatriX
查看>>
JQuery easyui Datagrid 分页事件
查看>>
MPLS 转发原理
查看>>
android 手机型号,版本号,
查看>>
家庭宽带之IPv6网络测试
查看>>
让宏哥告诉你什么叫做 OO -- 放在博客比较有价值
查看>>
filter的时间过滤有关问题
查看>>
access手工注入笔记
查看>>
zookeeper原理(转)
查看>>
垂直居中的几种方法
查看>>
我的友情链接
查看>>
PTN960
查看>>