1. 程式人生 > >排憂解難之Ubuntu 安裝 Sublime text 解決搜狗輸入法問題

排憂解難之Ubuntu 安裝 Sublime text 解決搜狗輸入法問題

Ubuntu安裝Sublime text解決搜狗輸入法問題

環境說明:Ubuntu 16.04 LTS版本,安裝Sublime text 3,需要解決不能使用搜狗輸入法的問題。

安裝Sublime text 很簡單,參照官網教程很容易裝上,但是會出現無法用搜狗輸入法輸入中文的問題。

  1. 建立如下原始檔

    cat >> ~/sublime_imfix.c <<EOF
    /*
    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); } EOF
  2. 安裝編譯環境

    sudo apt-get install build-essential
    sudo apt-get install libgtk2.0-dev
  3. 編譯為共享庫

    gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC
  4. 測試效果

    LD_PRELOAD=./libsublime-imfix.so subl
  5. 編輯Entry檔案

    關鍵是修改三個Exec項值,注意實際路徑和英文雙引號問題。

    cd /usr/share/applications
    sudo vi sublime_text.desktop
    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=Sublime Text
    GenericName=Text Editor
    Comment=Sophisticated text editor for code, markup and prose
    Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text %F"
    Terminal=false
    MimeType=text/plain;
    Icon=sublime-text
    Categories=TextEditor;Development;
    StartupNotify=true
    Actions=Window;Document;
    
    [Desktop Action Window]
    Name=New Window
    Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"
    OnlyShowIn=Unity;
    
    [Desktop Action Document]
    Name=New File
    Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"
    OnlyShowIn=Unity;

    至此,軟體已能正常輸入中文,但還存在輸入框不跟隨的問題,目前沒找到合適辦法,湊合著用吧。希望Sublime text官方能做出優化。
    軟體截圖

文章大部分內容來源於網路部落格,謹在此註明參考部落格原網址:

  1. 第一篇
  2. 第二篇

相關推薦

排憂解難Ubuntu 安裝 Sublime text 解決輸入法問題

Ubuntu安裝Sublime text解決搜狗輸入法問題 環境說明:Ubuntu 16.04 LTS版本,安裝Sublime text 3,需要解決不能使用搜狗輸入法的問題。 安裝Sublime text 很簡單,參照官網教程很容易裝上,但是會出現無法

ubuntuUbuntu安裝chrome瀏覽器,輸入法

1、安裝google瀏覽器 系統為ubuntu12.04, 64bit, 安裝chrome, 如下命令: $ sudo apt-get install libcurl3 libnspr4-0d libxss1 $ wget -O g-chrome-NoobsLab64.de

Ubuntu安裝Sublime Text 3”,並解決Sublime Text 3中無法輸入中文的問題

##一、“Sublime Text 3”的安裝 ####1. 官網下載程式解壓到自己的軟體目錄下(比如"~/Software") ####2. 進入sublimetext目錄中,即可執行: $ cd ~/Software/sublime_text_3 $ ./sublime_text

Ubuntu安裝Sublime Text並輸入中文

中文 bject data- gen 能夠 ppa microsoft windows bin Sumblime Text3是一款傳說中的神級代碼編輯器,具有

ubuntu安裝sublime-text

。。 source class 然而 install update clas ble TE 按照網上的教程, wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add

ubuntu安裝sublime並且解決輸入中文問題

1.下載我們需要的檔案,開啟終端,輸入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git2.將subl移動到/usr/bin/,並且將sublime-imfix.so移動到/opt/sublime_text/(sublime的安裝目錄)終

MBR 方式安裝 ubuntu 18.10系統及輸入法配置

接上一篇grub rescue繼續講這次換SSD的故事! 背景故事簡介:   之前機子上裝的是win10和ubuntu16.04雙系統,前幾天買了塊SSD,用分割槽助手把原來的win10遷移到了SSD上,此時理論上應該是在bios中把SSD設定成第一啟動盤,就會直接進入SSD上的win

解決ubuntu 14.04下,輸入法無法輸入中文的問題

今天開啟瀏覽器準備搜尋東西時,突然發現輸入法無法輸入中文了,弄了半天沒弄好,後來看了網上的一些資料,自己總結一下,簡單有效。 進入主資料夾下面,顯示隱藏資料夾,找到./config資料夾(./表示是隱

解決ubuntu中不能使用輸入法

Sublime Text 2/3 輸入法(Fcitx)修復[Ubuntu(Debian)] 主要目的 安裝 Sublime Text 3安裝 Fcitx 輸入法 + 面板修復 Sublime Text 2/3's 在 Ubuntu(Debian) 系統下的無法輸入中文(

ubuntu中subline無法使用輸入法

今天使用subline編寫python程式,發現在ubuntu下無法調用搜狗輸入法輸入中文,結果一番搜尋發現github上的sublime-text-imfix專案能修復此問題,專案地址是:https://github.com/lyfeyaj/sublime-text-imfix 將該專案專案下載到本地並執

idea使用小技巧--解決輸入法中文輸入時游標不跟隨BUG

idea使用小技巧--解決搜狗輸入法中文輸入時游標不跟隨BUG bug現象描述 bug產生原因 解決方案一(`無效`) 解決方案二(`有效`) bug現象描述 當開啟idea(版本:IntelliJ IDE

解決輸入法輸入英文,切換不到中文問題

這這天被搜狗折磨瘋了,開啟輸入法,不管怎麼除錯,都是英文,開始以為蘇輸入法問題,每個版本都試了,只要登入上個人賬號,就出現只能輸入英文問題,後來又懷疑是防毒軟體問題,重灌了三次系統,快瘋了,今天無意發現,原來是設定問題. 解決步驟1: 步驟2: 去掉啟動時進入英文輸入法

Ubuntu 14.04 安裝 Sublime Text 3

我們 jin image 配色 閱讀 代碼折疊 安裝 posit med Ubuntu 14.04 安裝 Sublime Text 3 聽語音 | 瀏覽:24435 | 更新:2014-09-25 22:14 | 標簽:ubuntu 1 2 3

[轉]在ubuntu安裝sublime text

mov cati out scala express esc truct sla and 1添加Sublime-text-3軟件包的軟件源sudo add-apt-repository ppa:webupd8team/sublime-text-32使用以下命令更新系統軟件源

Linxu基礎Ubuntu安裝和使用輸入法

1. 開啟命令列,進入root模式 開啟終端 Ctrl + alt + T 進入root模式 命令列內 hostname:~$:sudo -i [sudo]password for hostname: [email protected]:~

ubuntu18.04下安裝sublime text 3解決中文輸入問題

sudo apt-get update && sudo apt-get upgrade  卡在這裡不動,下載出現問題,後續檔案預設。 sudo vi /usr/share/applications/sublime_text.desktop #

【完全解決Ubuntu下正確安裝VMware Tools及安裝輸入法

安裝 VMware Tools 時報 客戶機作業系統已將 CD-ROM 門鎖定,並且可能正在使用CD-ROM 的解決方法,很多新手都遇到過 解決方法:1.關閉虛擬機器2.編輯虛擬機器,將CD/DV

ubuntu 18.04安裝sublime text教程

apt 1. Install wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - sudo apt-get install apt-transport-https e

點滴記錄——Ubuntu 14.04中安裝Sublime Text 3並使用SublimeClang外掛

    Sublime Text是個跨平臺的編輯器,支援Windows、Linux、Mac系統平臺,支援各種語言的程式碼編輯,配合上對應的外掛,話上點時間學習,你將會對它愛不釋手,大大的提高你的編碼效率。本文將講解在Ubuntu 14.04系統中安裝SublimeTex

Ubuntu 16.04找不到語言支援的解決辦法以及安裝輸入法

最近更新到了Ubuntu 16.04,在進行了一系列的配置之後準備安裝一箇中文輸入法時候總是安裝不成功,將搜狗輸入法下載到本地後無論是直接雙擊開啟檔案使用應用商城安裝還是在命令列執行dpkg -i sogoupinyin_2.1.0.0086_amd64.deb最終都不能很