解決Ubuntu下Sublime Text 3無法輸入中文
sublime很好用,但是ubuntu下不能輸入中文,這是一個很大的問題。不知道為什麼開發著一直也不解決,好在還是有高手在,總能找到方法。網上方法很多,但是也很亂,現在我將自己的經驗總結一下。
首先,我參考了好幾篇文章,都是蠻不錯的,先列出來:
我的方法
1.下載我們需要的檔案,開啟終端,輸入:
git clone https://github.com/lyfeyaj/sublime-text-imfix.git
2.將subl
移動到/usr/bin/
,並且將sublime-imfix.so
移動到/opt/sublime_text/
(sublime的安裝目錄)
終端輸入:
cd ~/sublime-text-imfix
sudo cp ./lib/libsublime-imfix.so /opt/sublime_text/
sudo cp ./src/subl /usr/bin/
3.用subl
命令試試能不能啟動sublime,如果成功啟動的話,應該就可以輸入中文了。
終端輸入:
LD_PRELOAD=./libsublime-imfix.so subl
4.但是這樣子只能用上述命令列啟動才能輸入中文,我們需要更簡單的辦法,我選擇新建一個shell指令碼,很簡單,就一句話。
sublime新建檔案輸入:
#!/bin/bash
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so subl
然後將檔案另存為sublime
(注意:沒有後綴),並且放到/home
資料夾。
5.至此,所有工作完成了。想要啟動,直接終端輸入:bash ~/sublime
6.如果不需要輸入中文,直接按以前的方式開啟即可。建指令碼檔案的目的就是方便開啟能輸入中文的sublime。
說明
這只是一個權宜之計,完美的解決辦法還沒有,只能等sublime開發者更新。
網上所謂的完美解決,還是有問題,比如如果更改桌面快捷方式,那麼sublime的Browse Packages
功能不能使用,當然,還有其他問題。為了正常使用,我就沒改。當然如果你中文輸入比較多,還是建議修改桌面快捷方式,畢竟那會方便很多,具體怎麼樣,自己取捨。
另外,輸入法不跟框,暫時無解啊。
文/Vaayne(簡書作者)
原文連結:http://www.jianshu.com/p/bf05fb3a4709
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。 回覆
確實無法根治,LD_PRELOAD會影響sublime的子程序,就是外部呼叫,原因是gtk2和gtk3的版本衝突……這就是中文輸入的代價……官方也不修復一下
喜歡(0)回覆
在你的方法下弄好啦,謝謝~
不過你最後把shell檔案放在/home下執行有點麻煩啊,直接放在/usr/bin裡豈不是更好?
MonsterOOF: 有個東西叫做快捷鍵,既然都用Linux了,想必也用鍵盤多於滑鼠了。Ubuntu下自定義一個快捷鍵,命令為subl,這樣子就相當於命令列啟動了。設定快捷鍵:設定——鍵盤——快捷鍵
新增新回覆我忘記是不是直接能輸入中文了,但之前直接點'desktop'圖示是不行的。看了你的文章,做了前面兩步有點疑惑,因為我安裝完的時候就提示我可以用'subl',並且當時我或許是可以中文輸入的(不記得了),但是進行到你的第三步,我確認可以在teminal輸入'subl'出來的sublime是可以中文輸入的,所以我到‘/usr/share/applications/‘裡面的Sublime建立的'.desktop’檔案,執行命令改成了‘subl’,直接點選也能中文輸入了
喜歡(0)回覆Vaayne: 做前面的步驟是因為我的安裝完成後不能直接從命令列啟動,如果可以啟動就不需要,後面是給啟動命令加個引數,確保那個外掛的執行。
新增新回覆
按照第一個方法成功了,在沒有開啟sublime的情況下終端鍵入subl可以開啟支援中文的視窗。
我有一個方法跟大家分享一下,實現了用快捷鍵將當前的檔案用支援中文輸入的sublime開啟。前提是這個檔案格式沒有繫結其他build命令。
原理:利用sublime build執行命令:pkill subl && subl ‘檔案路徑’
參考:
//build檔案
{
"shell_cmd": "pkill subl && subl \"${file}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}"
}
注意: 按快捷鍵之前最好儲存一下開啟的檔案,畢竟是pkill。
所有方法都試了一遍,都失敗了
喜歡(0)回覆
ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
你好,我按照你的方法來做,第三步的時候可以開啟sublime,可是不能輸入中文
喜歡(0)回覆
我安裝的build 3083 ,上述的方法我是按步做了,最終都不可以輸入中文 ,
問了一下同事他用的非3083 比其要低幾個版本,但是是3以上,他照做了可以輸入中文。
能否貢獻一下你的sublime安裝軟體。[email protected] 謝謝!
非常感謝您提供寶貴的經驗我的問題已經全部解決!
喜歡(0)回覆
解決了我的問題,感謝~
我用 alias 設定啟動 可以參考下
在.bashrc 或 .zshrc 里加一行
alias subl_cn="LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so subl"
保持後執行 source .bashrc
然後就可以通過subl_cn 啟動支援輸入中文的sublime text
Ign0re: ERROR:
ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
親愛的 請問你知道這是什麼情況嗎
ERROR: ld.so: object './libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
step3 wrong ,請問怎麼解決呢
/usr/share/applications/sublime_text.desktop
把Exec改為/usr/bin/subl就可以啦。
cptcrazy: 能說的再詳細點嗎?我也是遇到以下錯誤
ERROR: ld.so: object './libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.