共計(jì) 2491 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
這篇“Ubuntu 下 sublime 中文無(wú)法輸入如何解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Ubuntu 下 sublime 中文無(wú)法輸入如何解決”文章吧。
copy 下列代碼, 保存為 sublime_fix.c
復(fù)制代碼 代碼如下:
#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);}
使用下列命令編譯它
復(fù)制代碼 代碼如下:
gcc -shared -o libsublime-imfix.so sublime_fix.c `pkg-config --libs --cflags gtk+-2.0/` -fpic
添加運(yùn)行權(quán)限給 libsublime-imfix.so
復(fù)制代碼 代碼如下:
chmod +x libsublime-imfix.so
將編譯后的文件 libsublime-imfix.so 復(fù)制到 sublime 的文件夾下面
在 sublime 安裝目錄下新建文件為 sublime_sh.sh,copy 內(nèi)容如下:
復(fù)制代碼 代碼如下:
#!/bin/bash
sublime_home= ~/software # 你的 sublime 安裝目錄
ld_lib= $sublime_home/libsublime-imfix.so
sh -c ld_preload=$ld_lib $sublime_home/sublime $@
你已經(jīng)可以通過(guò) teminal 啟動(dòng) sublime 了, 運(yùn)行./sublime_sh.sh 即可
若要通過(guò)啟動(dòng)器啟動(dòng) sublime, 請(qǐng)將你 sublime.desktop 里面的 exec 路徑修改為 sublime_sh.sh 所在路徑
以上就是關(guān)于“Ubuntu 下 sublime 中文無(wú)法輸入如何解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道。