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

问题描述

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

        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!