天天看點

fcitx無法輸入中文_困擾我多年的中文輸入問題終于解決了

困擾我多年的中文輸入問題終于解決了

從使用電腦開始輸入法的詞庫問題讓我一直很厭煩。

我需求很簡單,沒有什麼過分的要求:

  • 希望詞庫能夠大到滿足我的日常需求,有個一兩百萬詞就可以
  • 不苛求一些專業詞彙預設的詞庫能收入,隻要能把使用者手工輸入的單詞記住就可以
  • 花裡胡哨的界面不需要,我隻要輸入速度快,消耗記憶體少,能夠穩定地在浏覽器和Terminal中工作
  • 個人隐私對我非常重要,我要百分百地确定該輸入法不會把任何資料上傳到網絡。
  • 我能手動把個人詞庫和設定同步至我個人私有Git伺服器
  • 輸入法永遠有人維護,随時都可以通過軟體倉庫快速安裝
  • 我也不喜歡鑽研輸入法設定,隻要預設有小鶴雙拼就行了
  • 最後的需求就是以上功能免費,也不要有廣告

20年來我使用的輸入法不計其數,在Windows上或者macOS上就沒有一款輸入法能滿足我的要求。

在Linux上我用Fcitx,基本滿足了我的需求,唯一的不足就是預設詞庫太小。網上有很多文章是關于把搜狗詞庫轉換為Fcitx詞庫的,我親測無效。我猜測原因是搜狗詞庫格式的更新導緻Fcitx的轉換工具不再有效了。

這個問題站在更高角度看我是洞若觀火,

本質就是中文輸入的工作流牽扯到了非自由軟體

。是以即使我的每個需求都是合情合理的,這些需求合在一起就很難實作。

幸虧我已完全領悟了Richard Stallman關于自由軟體的心法,Emacs我也完全掌握了。用Emacs來解決Fcitx的詞庫問題很簡單。

Emacs 中文輸入法 tumashu/pyim 提供了詞庫。

詞庫就是個文本檔案而已,我對文本檔案處理很在行。隻要是文本,正規表達式都能搞定。

是以我寫了個python小腳本把pyim的詞庫轉換成 fcitx詞庫。見 redguardtoo/pyim2fcitx 核心代碼也就20行不到。 也可直接從以上連結裡下載下傳轉換好的詞庫,包含 3296385 個詞。

我的需求就這樣通過Linux+Fcitx+從Emacs中文輸入法轉換的詞庫解決了。我預期未來30年會一直使用此方案。

如果你覺得這個方案很簡單,使用非自由的軟體或作業系統也可以實作,那麼别憑感覺,自己把我說的要素一條條實操一下。

很多人以為Emacs隻是一個編輯器,也有段子說它是“作業系統”。坦率地講以上說法還是浮于表面。

Emacs是Richard Stallman對“軟體自由”理念最佳實作。理念才是吸引精英程式員的關鍵,“君子喻于義小人喻于利”

。基于這些精英的解決方案我可以解決其他軟體的問題,最終方案不一定用Emacs,但受到了Emacs的啟發。Emacs也是我精通其他編輯器和IDE的的手段

小結:

自由軟體不像商業軟體對使用者限制那麼多.唯一的缺點是需要人力堆資料的地方比較薄弱.比如輸入法的中詞庫.使用者有自己寫腳本的能力可以自己導入轉換資料.

另外推薦我的文本檔案術教程:如何提高程式設計速度 - Emacs高手教授輕松精通所有編輯器和IDE的秘訣_共104課時-51CTO學院