java - 如何解决linux下面中文输入法不跟随?
ringa_lee
ringa_lee 2017-04-18 10:20:46
0
3
1162

问题描述

Linux下面切换到中文输入法,在sublime和jetbrains全家桶下面中文输入法都无法跟随,都会浮动到桌面的左下角。Google找了一下答案,基本都说是fcitx的原因,和IDE没有关系。请问有遇到同样问题的朋友吗?能否给一下建议?不管是sougoupinyin还是googlepinyin都是一样的。

ps: 但是在Vim(终端)以及浏览器下面都没有问题,输入法可以正常跟随。运行环境是Ubuntu16.04。

参考资料

Linux下PyCharm中文输入法的跟随问题
JAVA写的IDE输入法在linux下老是会错位?

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
巴扎黑

其實是跟編輯器有關的,因為編輯器沒做好國際化,拿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...

迷茫

看似官方還沒解決這個問題;樓主可以嘗試安裝一下IMESupport,不过IMESupport這個插件現在在PackageControl下面不見了。 。 。 (ノ﹏ヽ)

小葫芦

看看編輯器有沒有設定編碼的地方設定成UTF8

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板