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

75次阅读
没有评论

共计 2491 个字符,预计需要花费 7 分钟才能阅读完成。

这篇“Ubuntu 下 sublime 中文无法输入如何解决”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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-  rect.y = rectangle-  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 中文无法输入如何解决”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2491字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)