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. javascript - SuperSlide.js火狐不兼容怎么回事呢2. python 计算两个时间相差的分钟数,超过一天时计算不对3. 一个走错路的23岁傻小子的提问4. javascript - vuejs 如何在单文件组件中使用混合5. android - 安卓activity无法填充屏幕6. java - 安卓电视盒子取得了root权限但是不能安装第三方应用,请问该怎么办?7. python - django 里自定义的 login 方法,如何使用 login_required()8. java - 创建maven项目失败了 求解决方法9. node.js - 函数getByName()中如何使得co执行完后才return10. java - 为什么hibernate查询表集报错?
