java - 如何解決linux下面中文輸入法不跟隨?
問題描述
問題描述Linux下面切換到中文輸入法,在sublime和jetbrains全家桶下面中文輸入法都無法跟隨,都會浮動到桌面的左下角。Google找了一下答案,基本都說是fcitx的原因,和IDE沒有關系。請問有遇到同樣問題的朋友嗎?能否給一下建議?不管是sougoupinyin還是googlepinyin都是一樣的。
ps: 但是在Vim(終端)以及瀏覽器下面都沒有問題,輸入法可以正常跟隨。運行環境是Ubuntu16.04。
參考資料Linux下PyCharm中文輸入法的跟隨問題JAVA寫的IDE輸入法在linux下老是會錯位?
問題解答
回答1:其實是跟編輯器有關的,因為編輯器沒做好國際化,拿sublime text 3來說,其實官方linux版根本就沒有兼容輸入法。
拿gtk2來說,要讓程序支持輸入法,首先你得有一個輸入法上下文GtkIMContext *im_context,然后獲得焦點的時候還需要手動激活這個輸入法上下文:
gtk_im_context_focus_in(im_context);
不只這樣,還要監聽各種信號(signals),比如輸入內容更新、聯想詞、上屏(commit)等等……
最后,你還可以通過這個方法告訴輸入法,我當前光標在什么位置,你輸入法要根據我給的這個位置進行調整:
void gtk_im_context_set_cursor_location(GtkIMContext *context,GdkRectangle *area);
好多編輯器在linux下的輸入法兼容性都有問題,畢竟人家只需要輸入英文,不需要輸入法,也懶得做那么多,做那么多也沒法測試。并且fcitx和ibus還有一些不一樣。
終端、瀏覽器這些都是ubuntu、google、mozilla他們做的,有專門的國際化團隊,當然要做的好一些。
最后補充一下API:https://www.gtk.org/api/2.6/g...
回答2:貌似官方還沒有解決這個問題;樓主可以嘗試安裝一下IMESupport,不過IMESupport這個插件現在在PackageControl下面不見了。。。(ノ﹏ヽ)
回答3:看看編輯器有沒有設置編碼的地方設置成UTF8
相關文章:
1. objective-c - ios百度地圖定位問題2. javascript - 求助這種功能有什么好點的插件?3. 微信開放平臺 - Android調用微信分享不顯示4. javascript - 關于這組數據如何實現 按字母列表分類展示 不改動數據結構5. html5 - rudy編譯sass的時候有中文報錯6. javascript - 寫移動端的頁面的時候,有不一快空白,是怎么回事?7. javascript - 關于定時器 與 防止連續點擊 問題8. javascript - ie11以下單擊打開不了file,雙擊可以。求解?9. javascript - 在IE中(9+)平時的樣式不生效,只有用開發者工具選中這個元素才生效,是什么原因?10. Python做掃描,發包速度實在是太慢了,有優化的方案嗎?
