_(°:з」∠)_/可能是最好用的双拼输入方案

Created Thu, 24 Oct 2024 00:00:00 +0000
2133 Words

初衷

作为一个重度非病理性强迫症患者,我对输入法一直抱有非常大的不满,这个不满的根源就是翻页选择字词。当然这个问题也不完全是输入法的问题,汉语本身就存在大量的同音字,所以只要是基于读音的输入法都无法避免重码过多这个问题。现在市面上的输入法大多都有云词库功能,这样使得大部分时间不需要去翻页选字,但是在输入人名或者不在词库中的新词汇时,依旧是无法完全避免选字这个问题。

有很多人试图去解决这个问题,有人设计了纯形码,比如五笔、虎码这类,也有人设计了双拼的辅助形码,比如自然码辅助码、鹤形等等。这些我都尝试过,甚至花了几周时间强迫自己去习惯虎码,最终还是放弃了。究其原因,就是用起来不舒服,当然不舒服这个事情非常主观。要知道,输入法这个社区非常奇怪,一群爱好者为了追求极致速度,可能是你觉得不舒服的各类方案的忠实拥趸,没人在意你的体会。所以,现在只剩下了一条路,就是定制属于自己的方案。

确定方向

既然要定制方案,那首先就得弄清楚自己的需求。我的需求很简单,大致是以下三点:

  • 一定要是双拼。我经常在中日双语之间切换,日语的罗马音输入基本上和双拼的节奏一样,因此双拼一直是我非常喜欢的输入节奏
  • 能通过形码筛选字词。尽可能避免翻页选字
  • 简单易用,最小化大脑的负担。打字应该是一个轻松的事情,不是吗

配料

接下来事情就简单起来了,既然确定了做什么菜,那就根据需求逐一选择原材料。

最简单的双拼肯定是自然码了,从名字就能看出来,它的记忆成本极低。 接下来为了保留双拼的节奏感,那在定制的方案中,音码和形码必须分离,不能像鹤形那样音码形码连在一起,非常影响节奏。这一点可以通过rime的规则来实现。具体而言,我设置分号作为分隔符,如果不需要筛选字词,就只打双拼;当需要筛选时,在双拼后面加上分号,然后输入相应的形码,这个过程通常是在双拼输入完之后再做的,因此完全不影响双拼的输入节奏。

最后是形码的选择,我一直在寻找简单易学的形码,但很长时间内没有找到一个让我满意的。最开始我用的是鹤形,但逐渐我发现这东西就是垃圾,经常需要在打字时思考如何拆分字形。暴论一下,类似于鹤形那样将大字拆分成小字,包括自然码的辅助码,无一例外,全是垃圾,因为这样拆出来的组件会特别多,记忆负担太重。 哲哲豆二笔,声笔这类基于笔画的稍微容易点,但是二笔需要额外记忆键位,而声笔完全是按笔画书写顺序筛选,效率太低。

那么有没有既易学又好用的呢?这就要请出迄今为止我发现的最神的形码——键道6。这玩意有意思的点在于,它基本上就没有多少字根,大部分情况都是把一个字拆成两半,用前一半的前两个笔画和后一半的前两个笔画来筛字,非常符合写字的逻辑。而且虽然一个人可能不记得完整的字怎么写,但是前面几笔基本上还是不会忘的。

键道6的形码规则是,将每个笔画映射到一个键位,每个字根映射到两个键位,对于我这种不想动脑子的人来说还是太复杂了,怎么办?那就把字根也全都映射到一个键位上去。这样就形成了我的魔改键道6。

在我的这套魔改形码中,字根“日月水木金土”和“人手口草贝十”被一一映射到字根对应的声母键位或者容易记忆的特殊键位。 其中“日”的键位是o,继承自自然码辅助码和鹤形,毕竟太阳它就是圆的! “月水木金土”都映射到声母,其中水的声母是sh,所以映射到了u (自然码的sh),土和士都长得像土,所以算是同一个字根,都映射到t,这样也就不用去想到底“袁”上面是士还是土了。后几个字根,“人口草贝”也都是映射到声母,“手”这个字根有点不太一样,因为sh已经被水占用了,所以继承自然码辅助码,映射到f,毕竟这个字根用得最多的地方就是扶(f)手旁。“十”这个字根也比较特殊,因为他的声母也是sh,那只能换一个了,我选择映射到x,首先它长得像十,而且罗马字母里面X就是十,四舍五入也就约等于不用记了。 这就是全部的字根了。字中除了这些字根之外的所有部分都看作笔画构成的部件就行。

至于笔画的映射也很简单,横我没有选择映射到声母h,因为h需要食指移动一个键,为了偷懒我把横放在a,这样就不用移动手指了。竖长得就像l,所以是l,其他的就不用特殊记忆了,丿(pie)是p,丶(dian)是点(包含捺),乛(zhe)是v(自然码的zh)。

当然以上映射只是我个人习惯,我在脚本里面预留了可以修改的函数,想怎么改就怎么改。 随便举个例子好了,比如例子的例,人字旁,所以形码最开始是r,第二部分“列”不是字根,那就找笔画,“列”的开头的两笔是横(a)和撇(p),所以他的形码就是rap。可以说基本没有什么记忆和推理负担。 最后,为了进一步降低负担,我还设置了形码提示,打到一半就会在候选框中显示完整的形码。 考虑到还有只知道字形而不知道读音的情况,我也为此专门设置了规则,可以用jj代替你不知道的读音,只输入形码也能找到你想打的字。比如jj;rap就能找到“例”这个字了。 在实际使用中,大多数情况下不需要完整输入形码即可筛选出你要打的词语。

结语

经过了近一年的使用,最终我将rime的造词功能彻底关闭,固定词频,通过自己糊的脚本来维护自己的用户词库,达到了让我非常满意的效果。 接下来很长的一段时间应该不会对方案本身有什么改动了,因此更新一篇文章将这个方案分享给和从前的我有同样烦恼的有缘人。