2020-03-19 的更新

很多朋友在看到 Blog 后问为啥选择单字输入方式和如何实现无重码。 这里集中作一下解释。

单字输入

选择单字输入方式有以下原因。

一、用过很多所谓大词库的输入法,结果发现根本一点都不大,很多我常用的词都没有。 可在不输入完编码时你永远也不知道词库中到底有没有你想要的词, 没有的话要不自己造,要不删出编码转打单字。

还有维护、同步多平台多设备的词库也是件很麻烦的事 (输入法必须不能有联网权限)。

二、在形码、音形码中输入方式中,更大的词库也意味者更多的重码,而我想之所以选用形码、 音形码最重要的原因就是想要低重码。大词库就与我的初衷相驳了。

无重码

在形码、音形码输入方式中,低重码是一个永远都绕不开的话题。 而目前我也只见过一个输入法敢说自己无重码 (超强两笔输入法: 首创全分阴阳规则。无重码补码技术实现了全词库无重码)。

我这应该 算是 第二个。对于无重码我的解决方案就是放弃死磕无重码、 拥抱重码、创造变化。

首先尽量保证所用的双拼、形码规则能尽可能多的去除重码。

当然,当字库很大时,就算再完美的规则也是无法保证能完全去除重码的, 于是就不再管有三个 以下重码的字,只需将它们按照字频顺序排列即可。

在我的繁体字输入方案中共有 16294 字 (含多音字),其中有 1971 条重码,波及了 4365 个字。 而放弃统计三个 以下重码的字后还有 72 条重码,波及了 300 个字。

可以看到这一步的效果是很明显的。

而对于有三个重码以上的字,采用如下规则:

  • 四个重码:
    • 选择两个高频字,删除末码 (即这两个字只使用三码)。
  • 五个重码:
    • 选择两个高频字,删除末码 (即这两个字只使用三码)。
  • 六个重码:
    • 选择三个高频字,删除末码 (即这三个字只使用三码)。
  • 七个重码:
    • 先选择四个高频字,删除末码。再从这四个字中选择两个高频字,删除末码。
    • (即这四个字其中有两个字只使用三码,另外两个字只使用两码)。

那么问题来了,要是在两码、三码的字中还出现了三个重码以上的字怎么办呢? 只须按照上面的规则再删除一个末码即可。

通过上述的规则,能四码唯一时自动上屏自然是极好的。 而出现重码时,也能将重码都控制在三个以内。再通过 “Space 键”、", 键”、". 键” 这三个键进行选择首字、 第一个重码和第二个重码。

虽然这并不是严格意义上的无重码,但这样也能保证每个字具有确定性。

虽然不知道这套规则能否适合专业的打字需求, 但至少在我的日常生活和工作中是完全足够的。

原文

之前对各输入法 (特别是中文输入法) 或多或少有点不满意, 而且它们跨平台 (Windows, Linux, Android) 的体验也不是很好, 但也没到不能用的地步。

终于在后面学习克林贡语时找不到一款顺手的跨平台的输入法, 于是决定自己来做一款。陆陆续续折腾了几个月除了日本语都完成了。

其中中文的输入方式使用音形码,前两码为 WZ 双拼音码 (基于自然码,只在零声母处理方式上有不同), 后两码为形码 (使用仓颉,取首尾两码), 都采用单字输入。再通过自己添加的几条规则基本上实现了无重码。

由于仓颉的形码资料来源于网络,没有经过授权,所以只打算自用。

各平台都基与 RIME 开发。最后来一波 Android 版的截图。

en_US
en_US

zh_TW
zh_TW

de_DE
de_DE

ja_JP
ja_JP

eo
eo

zh_CN
zh_CN

tlh
tlh

鉴于很多语言都没有输入法支持,我建了一个输入法项目

旨在为各国非官方的自然语言和各种人造语言提供开箱易用的完美的跨平台输入体验。