大家好,
我正在尝试寻找一种大字集、无需选字的输入方案,并挂载于 Rime 或其它输入法引擎上。除了常见的拼音、五笔、仓颉等,搜索引擎还找到了许多我从前没有见过的输入方案。
我觉得我理想的输入方案可能是这样的:
- 支持尽可能多的 Unicode 中日韩统一表意文字,因此可以无需切换而同时输入简化汉字及传统汉字,并且也可以输入日本、朝鲜半岛、越南等的表意文字。
- 重码率尽可能低,或支持以尽可能有规律可循的方法筛选重码字,因此可以无需选字。
- 例如,仓颉通过在字码前添加不同数量的字母「X」筛选重码字。虽然无法从一个字本身推导出所需的「X」的数量,但是特定数量的「X」总是返回特定的字,因此少量地死记硬背之后仍然可以实现不选字而直接输入想要的字。此外,也许另有其它更好的方法筛选重码字。
- 通过固定码长或其它方式以少用空格,甚至不用空格。
这些理想当中,优先级最高的可能是「大字集」,其次是「无需选字」。最后的「不用空格」如果有的话是一个闪光点,但没有也没关系。
为了实现这些理想,牺牲其它方面也是完全可以接受的(在不考虑直接键入 Unicode 码等特殊方法的情况下),包括但不限于:
- 学习难度高一些也没关系。
- 能够输入单字即可,不一定需要输入词组(转念一想,其实没有词组或许反而会更加方便一些)。
我目前正在使用仓颉,并简单浏览了郑码的资料。仓颉和郑码看起来都支持 Unicode 中日韩统一表意文字,也支持部分扩展区的字,并且相对来说重码率也非常低。不过还是有下面一些因素让我想再试着探索探索其它的输入方案:
- 仓颉字码最长有五个字母,并且需要用空格确认选字,看起来需要比很多其它输入方案按键更多次。
- 郑码看起来可能使用左手的频率相对右手较高,并且可能需要频繁使用左手小指。
- 仓颉偶尔有些字码匹配到过多重码字,无法使用字母「X」筛选,这种情况下看起来只能手动在候选列表中选字。
- 郑码看起来可能暂时没有筛选重码字的方法,因此可能所有的重码字都需要手动选字。
通过搜索引擎,我得以找到许多从前没有见过的输入方案。这些输入方案的用户数量看起来要比拼音、五笔、仓颉等输入方案要少,但理论上,如果一个输入方案提供了可以用于 Rime 引擎的输入方案文件,那么就仍然可以很方便地使用。另一方面,在较为大众的输入方案当中,仓颉和郑码看起来已经是相对来说最接近我的理想的输入方案了。因此,我现在主要在尝试探索这些较为小众的输入方案。
在我所查阅到的一些输入方案当中,有些比仓颉或郑码的重码率更低,但字集相对较小,或主要用于输入一个地区的字,而输入其它地区的字需要付出额外的努力,例如手动切换简化或传统汉字、为简化汉字手动选重、为传统汉字键入更长的字码等。
我想可能确实有一种(也许较为小众的)输入方案可以更加接近我的理想,只是我暂时还没有找到,所以希望请教大家的帮助。
多谢推荐,我查阅到了一些虎码的资料,看起来虎码很接近我理想的输入方案。
在这篇文章中,我也了解到虎码输入传统汉字可能需要键入比简化汉字更长的字码,而且重码率可能也比简化汉字更高。但我不确定这一点。因此,我也好奇大家是否有更多使用虎码输入传统汉字的经验。
需要严格区分简繁或不同地区字形的话,也可以考虑徐码。
我个人不太喜欢虎码的点在于,他的小码用到了读音,不是“纯”形码了,这方面郑码显然更好。
wsug
5
有个疑惑, 为什么要支持尽可能多的字和大字集优先最高呢? 我写了个脚本把我电脑里累积了十多年的文本都抓取后提取中文, 统计字数, 结果有三千多个单字.
也就是说, 如果有个输入法能把这三千多单字都打出来, 就已经能满足我的需求了, 输入法能支持的字数有三万字还是四万字对我而言都没有什么意义, 因为这些字我也用不到它.
如果输入法只考虑这三千多字, 应该是可以做到超低重码率无需选字的,而支持的字数越多就越不可能做到.
当然我的情况是个例, 但应该不太可能有人常用的汉字数会过万.
如果将日常用字和生僻字区分开来考虑,那么其实可以分别使用两种输入法,这样选择的空间就很大了。
比如我用的是星空键道,它是一种音形码,常用字 8000 左右,平均码长大约在 2 左右。它也支持顶功,可以大大减少空格的使用。
这个输入方案有趣的一点在于可以挂接别的码表,因为 U、I、O、A、V 这五个键分配给了形码,不可能作为第一个码,所理论上可以挂上 5 套别的码表。目前在 github 上维护的 rime_JD 就在 U 上挂了一套“字海两分”检字法,用于应对临时输入生僻字的情况。我想完全可以自己挂一套仓颉上去。
另外如果日常在 emacs 里面打字的话也可以活用 abbrev 来应对频繁输入的情形。
1 个赞
我用搜狗拼音输入法的小鹤双拼,生僻字按U进入拆字模式凑出来
rlry
8
写论文时常常用到古籍,但个人体验是,常用字小鹤音形,生僻字部件檢索拆字或者babelmap复制也够用了。
wsug
11
请教有没有把繁体和冷门字都移除只支持数千简体中文的仓颉版本? 仓颉在大陆用的人少我觉得一个原因就是字库太丰富, 打的时候繁体字都排在前面, 简体字虽有收录却不容易打出来. 于是渐渐的人们就以为这个输入法只适合繁体不太适合简体
我之前给 Plan9 做输入法时用到码表,还是保留了一定数量的冷门字,但是打简体方便很多了
wsug
14
感谢两位的回复, 前面提到我统计了自己十多年来所有用到过的字, 只有三千多单字, 我准备编个码表能打这三千多字就够用了, 三码就可以打万多字, 三千多字感觉四码是无必要的.
我找到了 快仓 的码表, 发现虽然字集很丰富也是三码的,但是很多简化字都没有.
开始想把五笔改三码的, 但不知道怎么改, 网上也没找到任何成功案例, 而五笔以外的形码方案好像都有改三码成功的. 只好放弃五笔了
可以做一个码表过滤功能,码表还用大字符集码表,在打字的时候自动过滤,只显示简体字。
比如把“规范汉字表中的一二级6500汉字”作为白名单,打字的时候只显示这些字。
我平时用的“小小输入法”就有这个功能。emacs里面应该不难实现
wsug
17
gbk已经扩张到两万多字,不小了; 扫了一下 一二级6500汉字
,其中我不认识和现实中从来没见过或用过的字还是很多, 自建码表还是只包含现实中自己实际用(见)过的字就够了.
之前论坛好像有人提到过效仿英语的大小写切换功能, 即键盘小写状态下打出的是简化字,大写状态下打出的是繁体字, 不知道这个实际是否可行,如果可行的话,对三千左右的汉字进行编码,实际也就能打出五六千字了
以前的极点五笔有个功能,就是不再按gbk等字符集来区分汉字,而是按用户的使用习惯来区别“常用字”和“非常用字”。
然后它还有个功能,空码时检索其它字符集。
可惜极点中文太老了,只能在win7以下的版本上用。
当年小鸭五笔也有这个功能,也是自从作者不更新之后,我在 win10 就没有怎么打五笔了
ksqsf
20
总结一下,筛选要求:
- 大字集
- 低重
- 比仓颉码长低一点、手感好一些
- 希望能简繁通打(倒数第二段)
得出结论:徐码、宇浩 除此之外应该没有同时满足这些条件的形码了。。。
PS:如果去掉简繁通打的要求(比如接受分简繁模式,或者接受某种字形选重),能选的形码会多很多。如果再去掉全集的要求,而是只要「能打出有读音的字就行」,那可选的方案可以扩张到音形码和一系列顶功方案(也就是基本不用空格的方案)。
P²S:从实用的角度说,打生僻字并不一定要和日常打字用同一种方案。比如打生僻字用仓颉,日用方案可以妥协一下用别的低重方案。
2 个赞