天天看点

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学院