首頁  >  問答  >  主體

java - 如何解决linux下面中文输入法不跟随?

问题描述

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

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

参考资料

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

ringa_leeringa_lee2740 天前1121

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-04-18 10:22:46

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

    回覆
    0
  • 迷茫

    迷茫2017-04-18 10:22:46

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

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 10:22:46

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

    回覆
    0
  • 取消回覆