跳到主要内容

案例:二码顶与四码定长

我们在这里用《声笔飞码》(实际上是它的单字模式,声笔飞单)为例来让大家对顶功先产生一个直观的了解。声笔飞码是在输入法界影响最大的顶功输入法,它直接或者间接地激发了其它顶功输入法的产生,因此以其为案例开始有其历史意义。

声笔飞码对汉字的编码规则如下:

  1. 第一码为汉字的声母(零声母用 v 表示),使用了 bpmfdtnlgkhjqxzcsrywv 共 21 个键;
  2. 第二码为汉字的部首或笔画,使用了 a-z 共 26 个键;
  3. 第三码和第四码为汉字去除部首后的前两笔,使用了 aeiou 共 5 个键。

可见,其全码为 4 码。例如,「码」的全码为 msaa,由声母 m、部首「石」(音托安排在 s 键上)和剩余部分「马」的前两笔「折、折」(安排在 a 键上)构成。除全码外,还有一、二、三级简码,例如 m 对应「没」,ms 对应「目」,msa 对应「卖」等等。

现在假设用户想以单字方式连续输入「目前」两个字,且「前」编码为 qo。在传统的输入方案中,如果要以单字方式输入这两个字,那么需要先空格确认第一个字,然后再输入第二个字,也即实际的按键为 ms_qo,其中 _ 表示空格。

但是,在声笔飞码中,用户只需要输入 msqo 即可,因为正常的单字编码的第三、第四码肯定是在 aeiou 中取,第三码不可能是 q。因此,在用户输入 q 后,事先加载了这些规则的输入平台就可以判断用户上一个字「目」的编码已经输入完成,于是把「目」顶上屏幕。基于同样的理由,如果用户想以单字方式连续输入「卖前」两个字,只需要输入 msaqo 即可,msa 也是无需空格确认的。总而言之,二、三级简码以及全码在输入时都不需要空格确认。

接下来,为了方便讨论,我们把依编码规则直接得到的全码和简码称为「原始编码」,而标注了空格和其他选择键的编码称为「实际编码」。上面提到的字,「实际编码」分别为:

  • m_ 没(一级简码仍然需要空格上屏)
  • ms
  • msa
  • msaa

回过头来,我们注意到,声笔飞码之所以有这样的特性,是因为它在编码规则上采用了特殊的设计。同样是最长为 4 码的五笔字型输入方案,它在编码时四个码都可以用 a-y 共 25 个键,所以在输入完二、三级简码之后,下一个编码输入平台无法判断是属于当前的字,还是属于下一个字,也就无法自动上屏。例如,「一、五、王、玨」的「实际编码」分别为:

  • g_
  • gg_
  • ggg_
  • gggg

因此,像声笔飞码这样的输入方案,它的实现是「特殊的编码规则」与「输入平台功能」二者的共同结果。只有输入平台的功能而没有相应的编码规则,是无法实现这样的输入方案的。

看过上面的例子,您可能若有所悟,也可能还一头雾水。没关系,在下一节中,我们会给出顶功正式的定义。