Ubuntu下sublime中文无法输入如何解决

这篇“Ubuntu下sublime中文无法输入如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ubuntu下sublime中文无法输入如何解决”文章吧。

成都创新互联公司作为成都网站建设公司,专注重庆网站建设、网站设计,有关成都企业网站定制方案、改版、费用等问题,行业涉及成都自拌料搅拌车等多个领域,已为上千家企业服务,得到了客户的尊重与认可。

copy下列代码,保存为sublime_fix.c

复制代码 代码如下:

#include <gtk/gtk.h>#include <gdk/gdkx.h>typedef gdksegment gdkregionbox;struct _gdkregion{    long size;    long numrects;    gdkregionbox *rects;    gdkregionbox extents;};gtkimcontext *local_context;voidgdk_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;    if(rectangle->width == 2 && gtk_is_im_context(local_context)) {        gtk_im_context_set_cursor_location(local_context, rectangle);    }}
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);}

使用下列命令编译它

复制代码 代码如下:

gcc -shared -o libsublime-imfix.so sublime_fix.c `pkg-config --libs --cflags gtk+-2.0/` -fpic

添加运行权限给libsublime-imfix.so

复制代码 代码如下:

chmod +x libsublime-imfix.so

将编译后的文件libsublime-imfix.so复制到sublime的文件夹下面
在sublime安装目录下新建文件为sublime_sh.sh,copy内容如下:

复制代码 代码如下:

#!/bin/bash
sublime_home="~/software"  #你的sublime安装目录
ld_lib="$sublime_home/libsublime-imfix.so"
sh  -c "ld_preload=$ld_lib  $sublime_home/sublime $@"

你已经可以通过teminal启动sublime了,运行./sublime_sh.sh即可
若要通过启动器启动sublime,请将你sublime.desktop里面的exec路径修改为sublime_sh.sh所在路径

以上就是关于“Ubuntu下sublime中文无法输入如何解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。

网页名称:Ubuntu下sublime中文无法输入如何解决
当前链接:https://www.cdcxhl.com/article24/ggpoje.html

成都网站建设公司_创新互联,为您提供网站改版网站设计公司网站维护外贸建站企业建站网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设