编码并击方案

2018年3月9日晚,我和哲豆二笔的作者张先生闲聊时,他提到能不能同时按下两个键,当成普通方案里的一个键,以实现三码定长。

这引起了我的兴趣,怎样不使用并击软件或硬件,实现并击的输入方式。

第一个拿来试手的是“12键二笔纯形6码6重并击方案”,这个方案制作起来最为简单,只要在原二笔的码表上做些替换工作即可。

这类只通过编码技术实现的并击输入就是编码并击。

并击可以提速

并击输入其实和传统单击输入方式击键速度上相差无几。最主要的原因是人的反应力有个知觉的阀限,按完一个键后,你的大脑要用一定的时间接受触觉信号再下达下一个要按的键的命令,这是影响击键的主要原因——人类的反应速度有限,即使是条件反射。

一个反应周期的时间最快100ms,所以很多人的击键无法突破10,除非熟练到大脑下达一个指令,一条指令可能让手指按多次(比如五笔高手雨儿的“弹指”),或者是可以忽视触觉反馈(这样的人才需要太久太久的训练)。

您可以这样做个实验,在跟打器里闭着眼睛,胡乱打一通,你的击键速度会上到20,虽然正确率为零。这时候你就明白,影响提高击键速度的不是手指不灵活,而是大脑跟不上。更别提预读、生僻字的拆分这类更复杂的思维。

可惜人的大脑无法升级硬件,实际上人的大脑已经是自然界里最优的设计了。那么必须思考如何在一个反应周期里多做一点事情。这也是并击能提速的原因。

因为并击的组合比单击的按键一般要多,所以在一次击键过程里,并击能输入更多信息,通过字根编码或者音形等等技术,可以实现相同的时间下,并击能打出更多字词;或者并击能用更少的编码键就能实现单击方案相同的性能。

编码并击相比于软件并击,理论上性能比不上。第一是编码并击只能是2指并击或3指并击,而软件并击可以更多手指同时按键。第二是,编码并击方案给每个并击组合赋予了含义,比如声音、字形、笔画、字根等,然而这些信息不能均匀分配给每个汉字,使得信息量平均不如信息上相对更乱序的软件并击(你也可以向092五笔看齐,做出信息分布接近理想平均的高效复杂方案)。

编码并击的专用词

下列词语是我在制作方案时候想到的,认为使用这些词语能简化并击领域的交流:

基本

  1. 并击:同时按下多个按键的击键动作。
  2. 单击:一次只按一个键的击键动作。
  3. 软件并击:利用专门的并击软件,挂接在单击方案上,以实现并击功能。
  4. 并击软件:当用户同时按下多个按键再松开按键后(clickup),映射出两个有顺序的字符列表,这两个字符做为常规方案的输入字符。例如:小仙并击,琴码。
  5. 并击平台:能实现并击的输入法平台,代表是小小和rime。
  6. 速录机:可以理解为“并击硬件”,知名的有:飞耀,亚伟。
  7. 编码并击:不用并击软件,仅仅通过增加编码以模糊并击时几个键的先后顺序。可以在大多数输入法平台工作。
  8. 击键速度:一秒内能按过多少按键。并击按多个按键算。在跟打器里一般简称为“击键”。
  9. 并击击键速度:一秒内按过的按键数量。并击组合算作一个按键。

击键组合

  1. 并击组合:一次并击行为时,所并击的多个按键构成的集合。
  2. 11并击:左手一个键,右手一个键的并击组合。同理,20并击是左手两个键、右手不按键的并击组合;21并击是左手两个键、右手一个键的并击组合。
  3. 左手并击/右手并击:只使用左手的并击组合,20并击、30并击属于左手并击。同理,右手并击是只用右手的并击组合。
  4. 双手并击:同时用到左右手的并击组合。如11并击、21并击、22并击等。
  5. 2指并击:简称2并,用到两个手指(无所谓左右手)的并击组合。如11并击,20并击等。同理还有3指并击、4指并击。
  6. 单手2指并击:并击时只用到一只手的2指并击,包括20并击和02并击。同理还有“单手3并击”包括30并击和03并击。简称单2并击、单3并击。
  7. 单并混击:方案里既有并击又有单击。
  8. 单2混击:方案里既有2指并击,又有单击。请与“单2并击”区分,两个“单”的含义不同。
  9. 23混击:方案里既有2指并击,又有3指并击。通常一个23混击的词条里,只有一次3指并击,而有两次2指并击。请与“23并击”区分,23的含义不同。

编码设计

示范用的编:左手qwe,右手789

  1. 一简:只包含一码的简码字词。
  2. 编组:编码时,根据并击组合将编码划分多个组(只存在观念里,并不用标注在码表中),在每个编组里排列组合,模糊并击组合的先后顺序。
  3. 模糊:动词,为了实现编码并击,将一个编组里的编码,排列组合成多个词条。例如:11并击q7w8e9的模糊词条包括7qw8e9、q78we9、q7w89e、q78w9e、7qw89e、7q8we9、7q8w9e共7个。
  4. 基本顺序,一个编组里,每个编码从前向后对应键盘上的按键是从左向右。例如11并击的q7w8e9,单2并击的qw78qw
  5. 模糊词条:码表中模糊作用的词条,它的顺序称为“模糊顺序”。
  6. 码长:词条的编码部分全部编码的数量,并击组合算作多个编码。
  7. 编组码长:也可以叫做“并击码长”,在码长里,将一个并击组合算作一个编码。

模糊数量

设:

  • 模糊词条的数量为 m
  • 一个编组内的所有可能顺序数量为 z
  • 方案的编组码长为 c
  • 一个编组内含有的编码数量为 y

那么



(这里减去的1是基本顺序不是模糊顺序。)

所以

例如:上文提到的11并击q7w8e9,模糊词条数量是

例如:3指并击qwe789的模糊顺序数量有:


出于减少码表规模目的,建议编码并击方案设计者尽量只做2指并击

用python编程时,可以使用itertools模块生成每个编组内的所有排序:

import itertools
for i in itertools.permutations('qwe', 3):
    print (''.join(i),end=' ')
    
# 输出结果: 
# qwe qew wqe weq eqw ewq 
# print (”.join(i)) 这个语句可以让结果直接排列到一起 
# end=' ' 可以让默认的输出后换行变为一个空格

建议其他开发者

如果您也想制作编码并击的方案,我根据我的经验给您这些建议,您也可以无视它们:

  • 所有的键位组合设计时候请考虑手感。特别是单手并击,尽量不要用小指,也不要用到同指跨排的组合。
  • 尽量设计26键及以内的方案,这是为了尽量兼容各类平台,比如:win10内置的微软五笔(但是它只支持4码长),QQ五笔,主流的拼音输入法等等。
  • 控制在最多6键并击,因为一般的薄膜键盘,并击7键会出现按键冲突。
  • 请尽量避免无理码
  • 上述的专用词并不是规范,只要不影响工作,您可以按您自己的习惯命名。

YY鸟 2018年3月14日

你可能感兴趣的:(编码并击方案)