sublime3在ubuntu中輸入中文

http://blog.csdn.net/cywosp/article/details/32350899參考了這篇文章

  1. SublimeText 3的安裝
    安裝方式有多種鸳玩,本文所描述的是從官方網(wǎng)站上下載64位的.deb文件 ,具體為http://c758482.r82.cf2.rackcdn.com/sublime-text_build-3059_amd64.deb文件,下載后雙擊即會自動使用默認的安裝軟件安裝照瘾。
  2. 相關依賴軟件的安裝
    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.
     * By Cjacker Huang <jianzhong.huang at i-soft.com.cn> *
     *
     * 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 <gtk/gtk.h>
    #include <gdk/gdkx.h>

    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這個共享庫。

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

subl是安裝好SublimeText 3后的程序啟動命令
如果一切正常峡扩,在啟動之后蹭越,搜狗輸入法就能可以輸入了。

  1. 為了方便,在第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
這樣就通過快捷方式打開SublimeText 3就可以支持中文輸入了。
注:第五步僅限使用.deb文件安裝的情況茴迁,
如果使用源碼安裝的則需要變通一下寄悯,寫個腳本將LD_PRELOAD加上即可

注意:如果LD_PRELOAD=./libsublime-imfix.so subl 這一步OK了萤衰,但第5步不生效堕义。可以用以下的方法實現(xiàn)

  1. vim ~/.bash_aliases然后增加一行:
alias sl="LD_PRELOAD=/home/kamio/libsublime-imfix.so subl "
#(假設libsublime-imfix.so這個文件在/home/kamio路徑下)

并保存退出脆栋。

  1. source .bashrc重新加載
  2. sl即可打開能輸入中文的編輯器啦終于可以寫中文注釋了~嘿嘿
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末倦卖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椿争,更是在濱河造成了極大的恐慌怕膛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秦踪,死亡現(xiàn)場離奇詭異褐捻,居然都是意外死亡,警方通過查閱死者的電腦和手機椅邓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門柠逞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人景馁,你說我怎么就攤上這事板壮。” “怎么了合住?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵绰精,是天一觀的道長。 經(jīng)常有香客問我透葛,道長笨使,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任僚害,我火速辦了婚禮硫椰,結果婚禮上,老公的妹妹穿的比我還像新娘贡珊。我一直安慰自己最爬,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布门岔。 她就那樣靜靜地躺著爱致,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寒随。 梳的紋絲不亂的頭發(fā)上糠悯,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天帮坚,我揣著相機與錄音,去河邊找鬼互艾。 笑死试和,一個胖子當著我的面吹牛,可吹牛的內容都是我干的纫普。 我是一名探鬼主播阅悍,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昨稼!你這毒婦竟也來了节视?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤假栓,失蹤者是張志新(化名)和其女友劉穎寻行,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匾荆,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡拌蜘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牙丽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片简卧。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剩岳,靈堂內的尸體忽然破棺而出贞滨,到底是詐尸還是另有隱情,我是刑警寧澤拍棕,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布晓铆,位于F島的核電站,受9級特大地震影響绰播,放射性物質發(fā)生泄漏骄噪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一蠢箩、第九天 我趴在偏房一處隱蔽的房頂上張望链蕊。 院中可真熱鬧,春花似錦谬泌、人聲如沸滔韵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陪蜻。三九已至,卻和暖如春贱鼻,著一層夾襖步出監(jiān)牢的瞬間宴卖,已是汗流浹背滋将。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留症昏,地道東北人随闽。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像肝谭,于是被迫代替她去往敵國和親掘宪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內容