溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu下sublime中文無法輸入如何解決

發(fā)布時間:2022-10-11 16:26:20 來源:億速云 閱讀:169 作者:iii 欄目:服務器

這篇“Ubuntu下sublime中文無法輸入如何解決”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“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

添加運行權(quán)限給libsublime-imfix.so

復制代碼 代碼如下:

chmod +x libsublime-imfix.so

將編譯后的文件libsublime-imfix.so復制到sublime的文件夾下面
在sublime安裝目錄下新建文件為sublime_sh.sh,copy內(nèi)容如下:

復制代碼 代碼如下:

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

你已經(jīng)可以通過teminal啟動sublime了,運行./sublime_sh.sh即可
若要通過啟動器啟動sublime,請將你sublime.desktop里面的exec路徑修改為sublime_sh.sh所在路徑

以上就是關于“Ubuntu下sublime中文無法輸入如何解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關的知識內(nèi)容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI