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. docker api 开发的端口怎么获取?2. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~3. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题4. docker容器呢SSH为什么连不通呢?5. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?6. docker网络端口映射,没有方便点的操作方法么?7. Hbuilder中的phpMyAdmin访问题8. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?9. 请问“由于 Cookie “PHPSESSID”的“SameSite”属性设置为“None”,但缺少“Secure”属性,此 Cookie 未来将被拒绝。”请问出现这个问题怎么办?10. docker start -a dockername 老是卡住,什么情况?

网公网安备