灵明输入法
注意
本方案基于宇浩拆分,为 25 键、前缀、四码、三编、音托、全字集、繁简通打输入方案。本方案同传统定长方案输入体验有所不同,请务必充分了解、分析、平衡其风险和收益后再决定是否学习使用。
简介
灵明输入法,又称灵码,基于宇浩拆分设计制作,是继日月输入法后的另一款纯形前缀码方案,可完全离开空格键进行输入。其名源自尚书大传之「明明上天」「配天之灵」。
其目的是在保留日月前缀码优势的同时,压缩最大码长。同时,引入光华纯二十五键布局、星陈聚类经验、卿云完全音托的优点,让前缀码方案更加适合普通用户。在设置 75 个无空格简码的情况下,其码长压缩至 3.0 左右,超过传统四码定长方案单字派极限码长。
由于按键需要分为互不重合的A区和B区,实际编码空间数量为:$$Y &= A^4 + A^3B + A^2B + AB$$。其中,A区按键数量为20(辅音字母),B区按键数量为5(元音字母)。计算可得编码空间为 202,100(二十万左右),是传统二十五键四码定长方案 406,875 编码空间的一半不到,可以说是螺蛳壳里做道场。
本方案贯彻宇浩系列输入法根本理念,支持繁简通打,其关键数据如下:
- GB2312 重码字数 403
- 通规重码字数 504
- 国字常用字重码数 76
- 简体动态选重率 0.0455%
- 繁体动态选重率 0.0460%
- 繁简混合动态选重率 0.0802%
- 全码速度当量 1.287
关于概念解析和数据对比,详见 《琼林撷英》、宇浩测评网 https://ceping.shurufa.app 及 《常见输入法重码数据》。
字根的编码
每个字根,有大码、小码、补码。部分字根没有小码。
- 大码是要重点记忆的。部分字形近似的字根,大码是相同的。大码使用
BCDFGHJKLMNPQRSTVWXY等20个辅音按键。 - 小码,严格取用汉语拼音的声母,故而又称为声码。没有读音的字根,永远没有小码。零声母的四个字根「而二儿耳」,用j来作为小码。因为本输入法不使用z键,故而z和zh两个声母用v代替。小码使用
BCDFGHJKLMNPQRSTVWXY等20个辅音按键。 - 补码,严格取用汉语拼音的韵腹(主元音),即介音后的第一个字母,故而又称为韵码。补码使用
AEIOU等5个元音按键。没有读音的字根,补码永远为o。
因为小码和补码是字根的汉语拼音严格对应的,属于经验性知识,故而记忆的重点应放在大码上。
关于韵腹
汉语拼音的韵母结构为:韵头(介音) + 韵腹 + 韵尾。其中,「韵腹」是韵母的核心部分,决定了韵母的主要特征。
如果一个韵母祇有一个元音,那么这个元音自然就是韵腹。例如:a、o、e、i、u、ü。
如果一个韵母有两个或以上元音,则要看这几个元音中哪一个舌位更「低」(i、u 最高, o、e 居中,a最低),最低的那个元音就是韵腹。
- 如果韵腹前有个较低的元音,则这个元音又称「韵头」(「介音」),比如:ia 中的 i、ua 中的 u、ie 中的 i、uo 中的 u。
- 如果韵腹后有个较低的元音,则这个元音又称「韵尾」,比如:ai 中的 i、ei 中的 i、ao 中的 o、ou 中的 u。
某些韵母同时有韵头(介音)和韵尾,比如:iao 中的 i 是介音,a 是韵腹,o 是韵尾。
因此,判断主元音(韵腹)的方法很简单:
- 如果只有一个元音字母,则这个元音就是韵腹。
- 如果有多个元音字母,则 i 或 u 后面的第一个元音字母就是韵腹。
下表列出了汉语拼音中所有韵母、韵腹(主元音)、对应的补码(韵码):
| 韵母 | 韵头 | 韵腹 | 韵尾 | 补码 | 备注 |
|---|---|---|---|---|---|
| a | a | a | |||
| o | o | o | |||
| e | e | e | |||
| i | i | i | |||
| u | u | u | |||
| ü | ü | u | |||
| ai | a | i | a | ||
| ei | e | i | e | ||
| ui | i | i | i | 为 uei 简写 | |
| ao | a | o | a | ||
| ou | o | u | o | ||
| iu | i | u | u | 为 iou 简写 | |
| ie | i | e | e | ||
| üe | ü | e | e | ||
| er | e | e | 儿化 | ||
| an | a | n | a | ||
| en | e | n | e | ||
| in | i | n | i | ||
| un | u | n | u | 为 uen 简写 | |
| ün | ü | n | u | ||
| ian | i | a | n | a | |
| uan | u | a | n | a | |
| ang | a | ng | a | ||
| eng | e | ng | e | ||
| ing | i | ng | i | ||
| ong | o | ng | o | ||
| iang | i | a | ng | a | |
| uang | u | a | ng | a |
单字的编码
一个字,最多取用四个字根:第一根、第二根、第三根、第四根。同时,一个字,最多是四个字母。我们使用填格子的方法将字根的编码组合成单字编码:☐☐☐☐
- 首先,填入第一根大码、和小码(若有)。☑☐☐☐或☑☑☐☐
- 接着,填入第二根大码。☑☑☐☐或☑☑☑☐
- 此时,如果还空余两格,则填入第三根大码。☑☑☑☐
- 最后,填入最未根大码。☑☑☑☑
对于不到四个字根的字,这时候很有可能格子还未填满,则进行以下补齐步骤:
- 填入最未根小码(若有)。
- 填入最未根补码。
由此可见:
- 一个四根字,如果首根有小码的,则永远不会用到第三根。
- 补码只在不足四码时用于补齐。
- 格子填满或者出现了补码,这个字的编码就结束了。
注意到,大码和小码所在的键位(辅音字母)同补码所在的键位(元音字母)互斥,故而补码可作为单字的自然分隔符。不满四码时,不用空格也可进行连续输入。
简码和码长
简码(此处以简体方案为例)设置如下:
- 一码上屏字:的E、是I、我O、不U、了A。
- 两码上屏字:取首码和末根韵码。因为两码可以直接上屏,故而等效于传统定长方案的一级简码。
- 三码上屏字:取首码、次码和末根韵码。因为三码可以直接上屏,故而等效于传统定长方案的二级简码。三码上屏字的设置,有两个考量因素:
- 能显著降低码长的高频繁简常用字,加权码长至少降低0.001。并且其手感不能太差,加权速度当量上升不超过0.002。
- 能显著提高手感、降低加权速度当量的高频繁简常用字,加权速度当量至少降低0.00005。
- 空格简码词若干:采用首字的首码或前两码(都是辅音字母)加空格上屏。如果一个设置了首韵简码,则不会设置以它开头的二简词。
- 空格简码字若干,只用于避重。
本方案是前缀码,因此简码效率显著高于一般的四码定长方案,简码设置的边际效率相对更高。综上所述,在记忆75个无空格简码的情况下,单字平均码长约为3。
简码设置
两码简码(无空格):
| first | a | o | e | i | u |
|---|---|---|---|---|---|
| b | 色 | 部 | |||
| c | 前 | 就 | 给 | 将 | |
| d | 眼 | 听 | 中 | ||
| f | 如 | ||||
| g | 院 | ||||
| h | 这 | 时 | |||
| j | 过 | 发 | |||
| k | 知 | 很 | 复 | 得 | |
| l | 还 | ||||
| m | 告 | 有 | 在 | ||
| n | 笑 | 回 | |||
| p | 包 | ||||
| q | 英 | 藏 | 著 | 对 | |
| r | 进 | 战 | 着 | ||
| s | 考 | 喜 | 地 | ||
| t | 把 | 找 | 看 | ||
| v | 治 | 没 | |||
| w | 利 | 和 | 说 | 那 | |
| x | 格 | 整 | 想 | ||
| y | 奇 | 非 | 理 | 太 |
词语的编码
词语编码规则和其他传统四码定长方案类似,祇有一点不同:两字词中,如果首根没有小码(声码),不参与组词。
- 两字词:首字前两码 + 次字前两码。注意,首字为字根的,不设置词语编码。
- 三字词:首字第一码 + 次字第一码 + 第三字前两码。
- 四字及以上词:首字第一码 + 次字第一码 + 第三字第一码 + 最末字第一码。
对比
这里展示灵明方案其他形码输入法的对比:
日月输入法
相同点:都是全字集、繁简通打。字根都是要么两码要么三码。
不同点:日月的字根声码韵码是根据实际读音映射的,有没有声码会根据读音产生。而灵明的声码韵码严格取拼音声韵部分的第一字母,取不取声码需要特殊记忆。
郑码输入法
相同点:都是字根双编码或三编码,首根都可能取到两码。
不同点:郑码首根可能取到三码;灵明最多取两码。郑码当主根多取一码的时候,会少取第二根;灵明当主根多取一码的时候,会少取第三根。郑码的主根后需要补A并且加空格上屏;灵明的补码(韵码)同时起到了补充和上屏的作用。
真码输入法
相同点:首根都可能取到两码。当主根多取一码的时候,都会少取第三根。
不同点:真码的主根后需要补I并且加空格上屏;灵明的补码(韵码)同时起到了补充和上屏的作用。
难度
| 更易 | 更难 | |||
|---|---|---|---|---|
| 大码 | 星陈 | 光华 ~ 灵明 | 日月 | 卿云 |
| 小码(声韵) | 卿云 ~ 灵明 | 星陈 | 日月 | 光华 |
| 编码规则复杂度 | 卿云 | 星陈 ~ 光华 | 日月 | 灵明 |
| 流畅度 | 卿云 | 日月 | 灵明 | 星陈 ~ 光华 |
| 手感 | 日月 | 卿云 | 灵明 ~ 星陈 | 光华 |
| 出简码长 | 灵明 | 日月 | 星陈 ~ 光华 | 卿云 |
常见问题回答
为什么不用 Z 键?
因为很多传统的大厂输入法挂载自定义码表时使用的是五笔字形的配置,Z键被占用作为通配符等,导致Z键无法使用。因此,本方案继承光华的特性,不使用Z键。
又,星陈输入法独创了25.5键模式,Z键不作为开头,使得其可以用来引导反查。在前缀码中,Z键只可能作为声码存在,但出现的次数有限,省略Z键对性能优化影响不大。
又,由于本方案小码绝对音托,导致Q键和A键频率较高,因此不再在Z键上放置常用字根,避免左手小指负担过重。
哪些字根不取声码
不取声码的字根分为以下几类:
- 所有的没有读音的字根,不取声码,且韵码永远是 O。
- 所有的基本笔划字根(一、丨、丿、乀、丶、乙、乚),不取声码。
- 首根位置最常出现的字根,不取声码以增加第三根使用率,提升离散度。部分高频首根,其组成的高频字一般只有三个及以下,则也会取声码,比如「日」。
- 其他经过算法优化不取声码的字根。
为什么零声母的声码是 J
本方案采取绝对音托,因此零声母字根祇有四个「而二儿耳」,它们的韵码都是 E,在左侧。为了手感考虑,声码必须选择右手的字母。而右手的字母中,J 是唯一近似元音的,且手感最佳。
至于为什么不能直接将它们设为零声母,是因为这样的话这四个字都必然占用宝贵的二码上屏码位。
同时,实际优化下来,这四个字根没有一个被算法安排为跳过声码,侧面说明从离散角度上来说,它们有一个声码是比较好的。
为什么没有读音的字根不取声码且补码永远是 O
没有读音的字根,表示为一个大码加一个类似空集符号的补码 O 最为自然,符合直觉。
同时,没有读音的字根,较少出现在首根上,因此不取声码可以更多照顾到第三根的使用率,增加离散度。
同时,没有读音的字根,只在特殊情况下使用,不会占用宝贵的二码上屏码位,因此不取声码对码长的损失较小。
同时,汉语拼音中的主元音一般是 AEIU,而 O 的出现频率较低,作为补码使用可以平衡五个元音的使用频率,提高手感。
多少情况下会跳过第三根
根据计算,所有的大于等于四根字的汉字中,约有四分之一的频率会跳过第三根。四分之三的频率会使用四个字根大码。这是因为在首根位置最常出现的字根都被优化成不取声码。
为什么不设置空格简码字
空格简码字和前缀码的理念相悖。前缀码的优势在于不需要空格键即可流畅输入,而空格简码字则需要空格键来上屏,这会破坏前缀码的连续性和流畅性。
又,对于大多数用户来说,影响速度的原因不是码长而是熟练度。记忆简码增加了隐性学习负担,但带来的收益有限,因此不设置空格简码字。空格简码位主要设置的是避重码和词语简码。
用户可以随时通过 Ctrl + Shift + K (K 指空格)隐藏或打开空格简码。
为什么不推荐打词
由于打单和打词时的编码长度存在不一致(打词只打一到两码),打词会扰乱用户对单字的熟练度,降低击键速度。而前缀码的优势就在于不需要输入空格以缩小码长,并且通过打字的反复练习来提升熟练度,增加击键速度。
又,本方案设置了若干一码、两码高频简码词语,可以有效降低码长,达到传统四定字词派的效果。
又,就算是极限的四码定长方案,词语重码也高於单字重码一个数量级,因此打词会带来严重的确定性问题,无法进行双盲输入。
因此,本方案强烈不推荐打词。
用户可以随时通过 Tab 键或 Ctrl + Shift + D (D 指单字)隐藏或打开全码词语。
有没有字根按键读音例字表
直接点击字根图上的字根即可。
