Ubuntu 安装 Sublime text 解决搜狗输入法问题
Ubuntu安装Sublime text解决搜狗输入法问题
环境说明:Ubuntu 16.04 LTS版本,安装Sublime text 3,需要解决不能使用搜狗输入法的问题。
安装Sublime text 很简单,参照官网教程很容易装上,但是会出现无法用搜狗输入法输入中文的问题。
创建如下源文件
cat >> ~/sublime_imfix.c <<EOF /* sublime-imfix.c Use LD_PRELOAD to interpose some function to fix sublime input method support for linux. By Cjacker Huang <jianzhong.huang at i-soft.com.cn>gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC LD_PRELOAD=./libsublime-imfix.so sublime_text */ #include <gtk/gtk.h> #include <gdk/gdkx.h> typedef GdkSegment GdkRegionBox;struct _GdkRegion {long size;long numRects;GdkRegionBox *rects;GdkRegionBox extents; };GtkIMContext *local_context;void gdk_region_get_clipbox (const GdkRegion *region,GdkRectangle *rectangle) {g_return_if_fail (region != NULL);g_return_if_fail (rectangle != NULL);rectangle->x = region->extents.x1;rectangle->y = region->extents.y1;rectangle->width = region->extents.x2 - region->extents.x1;rectangle->height = region->extents.y2 - region->extents.y1;GdkRectangle rect;rect.x = rectangle->x;rect.y = rectangle->y;rect.width = 0;rect.height = rectangle->height; //The caret width is 2; //Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) {gtk_im_context_set_cursor_location(local_context, rectangle);} }//this is needed, for example, if you input something in file dialog and return back the edit area //context will lost, so here we set it again.static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context) {XEvent *xev = (XEvent *)xevent;if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window");if(GDK_IS_WINDOW(win))gtk_im_context_set_client_window(im_context, win);}return GDK_FILTER_CONTINUE; }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);if(!GDK_IS_WINDOW (window))return;g_object_set_data(G_OBJECT(context),"window",window);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);local_context = context;}gdk_window_add_filter (window, event_filter, context); } EOF
安装编译环境
sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev
编译为共享库
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
测试效果
LD_PRELOAD=./libsublime-imfix.so subl
编辑Entry文件
关键是修改三个Exec项值,注意实际路径和英文双引号问题。
cd /usr/share/applications sudo vi sublime_text.desktop [Desktop Entry] Version=1.0 Type=Application Name=Sublime Text GenericName=Text Editor Comment=Sophisticated text editor for code, markup and prose Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text %F" Terminal=false MimeType=text/plain; Icon=sublime-text Categories=TextEditor;Development; StartupNotify=true Actions=Window;Document;[Desktop Action Window] Name=New Window Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n" OnlyShowIn=Unity;[Desktop Action Document] Name=New File Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file" OnlyShowIn=Unity;
至此,软件已能正常输入中文,但还存在输入框不跟随的问题,目前没找到合适办法,凑合着用吧。希望Sublime text官方能做出优化。
文章大部分内容来源于网络博客,谨在此注明参考博客原网址:
- 第一篇
- 第二篇
Ubuntu 安装 Sublime text 解决搜狗输入法问题相关推荐
- Ubuntu安装Sublime Text 3--解决无法使用搜狗中文输入法
转自 迷津渡口 http://www.qingzz.cn/ 如侵权请联系我,马上删除 不用多说,Sublime Text是最受开发者欢迎的编辑器之一,清新的界面和强大的插件,你值得拥有哦- 下面简单介 ...
- Ubuntu安装Sublime Text并输入中文
Sumblime Text3是一款传说中的神级代码编辑器,具有下面特点: 1.代码高亮,自己主动补全 2.各种插件扩展 3.外观简洁舒适 4.跨平台(Windows,Linux,OS X) 简而言之就 ...
- ubuntu 安装 Sublime Text 2
1\ Add the PPA and install Sublime Text 2 in Ubuntu Shell代码 收藏代码 sudo add-apt-repository ppa:webupd ...
- Ubuntu 14.04 安装 Sublime Text 3
Ubuntu 14.04 安装 Sublime Text 3 听语音 | 浏览:24435 | 更新:2014-09-25 22:14 | 标签:ubuntu 1 2 3 4 5 6 分步阅读 ubl ...
- 在Ubuntu上安装Sublime Text 3
在Ubuntu上安装Sublime Text 3 1 点击左上角dash按钮,输入"terminal"或者"终端",打开终端界面: 2.在终端输入: sudo ...
- 如何在 Ubuntu 20.04 / KylinOS-V10-SP1 上安装 Sublime Text 4
Sublime Text是一个跨平台的专有源代码编辑器.它提供了大量的功能和插件,极大地帮助了应用程序的开发.Sublime Text 是用 C++ 和 Python 编写的. 显着的功能包括拆分编辑 ...
- ubuntu之安装sublime text
安装sublime text sudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get ...
- 如何在Ubuntu 13.04, 13.10上安装Sublime Text 3
Sublime Text是一款很流行的源代码文本编辑器,托Webupd8团队的PPA仓库之福,我们现在能通过PPA安装Sublime Text 3,适用于ST的注册用户和未注册用户. 安装Sublim ...
- 在ubntu下安装Sublime text
1. Ubuntu 16.04(其他版本应该也可以) 安装Sublime text 在Ubuntu中按CTRL+ALT+T打开命令窗口,输入 sudo add-apt-repository ppa:w ...
最新文章
- 【BZOJ 1095】 1095: [ZJOI2007]Hide 捉迷藏 (括号序列+线段树)
- 微信门店小程序怎样创建 门店小程序创建方法简介
- 计算机应用用什么样的笔记本,制图用什么笔记本好
- Spring REST:异常处理卷。 3
- 新手前端练手网站_编程到底难不难学?新手入门选择哪种语言好?
- C语言中负数补码的方法,c语言里求负数补码的总结不足与优点.docx
- 使用gensim训练word2vec模型
- 华为效仿苹果卖高价手机?滴滴顺风车开放灰度测试;苹果官微被投诉“攻陷”| 极客头条...
- 基本数据类型-列表_元组_字典
- win10通过VMware使用教程
- java isprime函数_Java8函数式编程入门
- 通俗讲解光线追踪原理,一文理清各类光线追踪
- 去除趋势杀软的退出密码
- Python 从函数 def 到类 Class
- matlab cui,阻力汽车论文,关于基于Matlab-CUI的汽车动力性相关参考文献资料-免费论文范文...
- matlab空间曲面拟合,【Matlab】离散点拟合曲面
- 理解杀毒软件的意义(完整---另加补充和总结)
- 摇奖机是按照金字塔的原理设计的
- 谈表达式的副作用----冯晓辉
- discuz论坛出现“请求来路不明”提示的解决方法