java - 如何解決linux下面中文輸入法不跟隨?
問(wèn)題描述
問(wèn)題描述Linux下面切換到中文輸入法,在sublime和jetbrains全家桶下面中文輸入法都無(wú)法跟隨,都會(huì)浮動(dòng)到桌面的左下角。Google找了一下答案,基本都說(shuō)是fcitx的原因,和IDE沒(méi)有關(guān)系。請(qǐng)問(wèn)有遇到同樣問(wèn)題的朋友嗎?能否給一下建議?不管是sougoupinyin還是googlepinyin都是一樣的。
ps: 但是在Vim(終端)以及瀏覽器下面都沒(méi)有問(wèn)題,輸入法可以正常跟隨。運(yùn)行環(huán)境是Ubuntu16.04。
參考資料Linux下PyCharm中文輸入法的跟隨問(wèn)題JAVA寫(xiě)的IDE輸入法在linux下老是會(huì)錯(cuò)位?
問(wèn)題解答
回答1:其實(shí)是跟編輯器有關(guān)的,因?yàn)榫庉嬈鳑](méi)做好國(guó)際化,拿sublime text 3來(lái)說(shuō),其實(shí)官方linux版根本就沒(méi)有兼容輸入法。
拿gtk2來(lái)說(shuō),要讓程序支持輸入法,首先你得有一個(gè)輸入法上下文GtkIMContext *im_context,然后獲得焦點(diǎn)的時(shí)候還需要手動(dòng)激活這個(gè)輸入法上下文:
gtk_im_context_focus_in(im_context);
不只這樣,還要監(jiān)聽(tīng)各種信號(hào)(signals),比如輸入內(nèi)容更新、聯(lián)想詞、上屏(commit)等等……
最后,你還可以通過(guò)這個(gè)方法告訴輸入法,我當(dāng)前光標(biāo)在什么位置,你輸入法要根據(jù)我給的這個(gè)位置進(jìn)行調(diào)整:
void gtk_im_context_set_cursor_location(GtkIMContext *context,GdkRectangle *area);
好多編輯器在linux下的輸入法兼容性都有問(wèn)題,畢竟人家只需要輸入英文,不需要輸入法,也懶得做那么多,做那么多也沒(méi)法測(cè)試。并且fcitx和ibus還有一些不一樣。
終端、瀏覽器這些都是ubuntu、google、mozilla他們做的,有專門(mén)的國(guó)際化團(tuán)隊(duì),當(dāng)然要做的好一些。
最后補(bǔ)充一下API:https://www.gtk.org/api/2.6/g...
回答2:貌似官方還沒(méi)有解決這個(gè)問(wèn)題;樓主可以嘗試安裝一下IMESupport,不過(guò)IMESupport這個(gè)插件現(xiàn)在在PackageControl下面不見(jiàn)了。。。(ノ﹏ヽ)
回答3:看看編輯器有沒(méi)有設(shè)置編碼的地方設(shè)置成UTF8
相關(guān)文章:
1. dockerfile - [docker build image失敗- npm install]2. docker-compose中volumes的問(wèn)題3. golang - 用IDE看docker源碼時(shí)的小問(wèn)題4. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!5. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果6. nignx - docker內(nèi)nginx 80端口被占用7. mac里的docker如何命令行開(kāi)啟呢?8. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題9. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?10. docker內(nèi)創(chuàng)建jenkins訪問(wèn)另一個(gè)容器下的服務(wù)器問(wèn)題

網(wǎng)公網(wǎng)安備