ubuntu 16.04 sublime 3安裝搜狗輸入法

在Ubuntu 16.04中安裝了SublimeText 3之后發(fā)現(xiàn)既然不支持輸入中文廊宪。

根據(jù)網(wǎng)上資料和自身的安裝過程浓瞪,解決辦法總結(jié)如下:

1. SublimeText3的安裝

??? 本文采用的是從官方網(wǎng)站上下載64位的.deb文件

??? sudo dpkg -i sublime-text_build-3114_amd64.deb?? ?

2. 相關(guān)依賴軟件的安裝

??? sudo apt-get install build-essential libgtk2.0-dev

3. 拷貝如下代碼到文件sublime_imfix.c文件中(該文件需要自己創(chuàng)建懈玻,可放任意位置)

??? /*

???? * sublime-imfix.c

???? * Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.

???? * 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

??? #include

??? 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);

??? }

??? 按照文件頭上注釋所說的編譯該文件,在終端里進入到存放該文件的目錄中乾颁,輸入如下命令:

??? gcc -shared -o libsublime-imfix.so sublime_imfix.c? `pkg-config --libs --cflags gtk+-2.0` -fPIC


??? 最后在當前目錄下得到libsublime-imfix.so這個共享庫涂乌。

4. 中文輸入

??? 到這里默認已經(jīng)裝好了中文輸入法(搜狗輸入法linux版)艺栈。得到第3步中的庫libsublime-imfix.so之后,先試試看是否能正常使用中文輸入法骂倘,在終端中輸入如下命令:

??? LD_PRELOAD=./libsublime-imfix.so subl???????????? #subl是安裝好SublimeText 3后的程序啟動命令

如果一切正常眼滤,在啟動之后,搜狗輸入法就能可以輸入了历涝。

5. 為了方便

??? 在第4步中如果每次都輸入LD_PRELOAD這樣顯得太不方便了诅需,在這里提供簡單修改圖標連接的方式,快速打開SublimeText荧库。將libsublime-imfix.so拷貝到系統(tǒng)庫的默認路徑中:

??? sudo cp libsublime-imfix.so /usr/lib/

??? 修改/usr/share/applications/sublime_text.desktop文件

??? sudo vim /usr/share/applications/sublime_text.desktop

??? 打開后將Exec=/opt/sublime_text/sublime_text %F修改為

??? Exec=bash -c 'LD_PRELOAD=/usr/lib/libsublime-imfix.so /opt/sublime_text/sublime_text' %F

??? 將Exec=/opt/sublime_text/sublime_text -n修改為

??? Exec=bash -c 'LD_PRELOAD=/usr/lib/libsublime-imfix.so /opt/sublime_text/sublime_text' -n


??? 也可以相似方式修改/usr/bin/subl堰塌,以便命令行方式啟動帶中文輸入法

??? 這樣就通過快捷方式打開SublimeText 3就可以支持中文輸入了。

注:第五步僅限使用.deb文件安裝的情況分衫,如果使用源碼安裝的則需要變通一下场刑,寫個腳本將LD_PRELOAD加上即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蚪战,隨后出現(xiàn)的幾起案子牵现,更是在濱河造成了極大的恐慌,老刑警劉巖邀桑,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞎疼,死亡現(xiàn)場離奇詭異,居然都是意外死亡壁畸,警方通過查閱死者的電腦和手機贼急,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捏萍,“玉大人太抓,你說我怎么就攤上這事×铊荆” “怎么了走敌?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逗噩。 經(jīng)常有香客問我掉丽,道長,這世上最難降的妖魔是什么给赞? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任机打,我火速辦了婚禮,結(jié)果婚禮上片迅,老公的妹妹穿的比我還像新娘残邀。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布芥挣。 她就那樣靜靜地躺著驱闷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪空免。 梳的紋絲不亂的頭發(fā)上空另,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音蹋砚,去河邊找鬼扼菠。 笑死,一個胖子當著我的面吹牛坝咐,可吹牛的內(nèi)容都是我干的循榆。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼墨坚,長吁一口氣:“原來是場噩夢啊……” “哼秧饮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泽篮,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤盗尸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帽撑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泼各,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年油狂,在試婚紗的時候發(fā)現(xiàn)自己被綠了历恐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寸癌。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡专筷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒸苇,到底是詐尸還是另有隱情磷蛹,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布溪烤,位于F島的核電站味咳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏檬嘀。R本人自食惡果不足惜槽驶,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸳兽。 院中可真熱鬧掂铐,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辱姨,卻和暖如春柿菩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雨涛。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工枢舶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人替久。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓祟辟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侣肄。 傳聞我的和親對象是個殘疾皇子诉濒,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容