我和五笔的故事

最近学了一个月的 Nest.js 有点累了,今天来分享一些非技术的东西——五笔输入法。

可能很少人知道我其实一直都在用五笔输入法来打字,或许更少的人知道我其实并不是从小开始学五笔,而是大三的时候学会的,然后一直用到现在。

这篇文章不是要说五笔有多好,也不是要教会大家五笔输入法,仅仅来分享一下五笔输入法,以及学习它的故事。

当时五笔是很快的

我第一次见到五笔是我小学的时候在家里的 Windows 98 上看到的。

如果你在小学的时候也上过电脑课,那么一定对下面图里的内容非常熟悉:

当时的 Windows 上除上面的标准拼音输入法,还有郑码、仓颉输入法、双拼、表形码输入法 等等。我相信大部分人只对拼音、双拼和五笔有比较大的印象,其中 90 后用的最多就是拼音输入法了。

当时的电脑性能非常差,内存很小,输入法的软件也不像现在有非常多的功能,比如智能化、词云、热词、拼音纠正,导致用拼音打出 3 4 个字需要非常精准拼音,错一个就显示不出来了,而且一旦有重码还得选个半天。所以,即使当时使用拼音输入法,一般也就打一个字和词语比较多,像今天一下打一串是比较少见的。

这就导致一个问题了:用拼音来打单个字和单个词语的重码是非常多的:

shide
是的
似的
使得
湿的
识得
...

有时还会出来这样的情况:

而五笔输入法在打单个字和词语方面则能做到 精准命中,4 个字母就能精准地组合起来一个词:

而 2 ~ 3 个字母就能打出来单个常用字 ,有的甚至 1 个字母就完事了。

五笔的 “快” 和 “准” 使得我父母那代人在刚接触电脑的时候,都会选用五笔输入法,觉得 “五笔” 就是比 “拼音” 快的。

字形输入法

相信大部分人是听说过五笔,但是对它其实是不太了解的,只知道它是一个通过汉字结构的拆分来打字。

然而,这种 “字形” 输入法是非常多选择的。除了五笔用字根来对应中文,还有非常多奇奇怪怪的输入法(不禁感叹当年想出这些输入法的大佬们是怎么想出来的):

这里分享两个大家经常听到的输入法:

双拼 输入法,它是用汉字的声母、韵母各用一个字母(或个别符号)代替构成的拼音编码,简单可以理解为 拼音 + 字形 = 字。采用这种拼音输入法输入汉字时,用户只需要敲击两次便可以键入一个汉字的拼音。例如小鹤双拼,输入“中国”的“中”字,可键入vs完成字音输入。

郑码 输入法,又称“字根通用码”,是由中国文字学家、《英华大词典》主编郑易里经过对汉字的研究所发想,后经其女儿郑珑所完成的一种字形输入法。

不过呢,由于 “双拼” 打字还是需要依赖拼音,所以重码问题依然严重,而 郑码 的打字规则比五笔更多更复杂,所以更多人会选择使用五笔输入法。

五笔输入法虽然早就规定了哪个字母对应哪个字根,但是直到目前依然有 3 个版本:86 版98 版新世纪版。由于这些版本主要的迭代仅仅是纠正了一些 字母 -> 字根 的对应规则,所以也仅有 3 版。目前我用的是 98 版。想想都 2021 年了,还用 98 的东西,跨越了 23 个年头,不禁有点唏嘘。

五笔字根

终于讲到五笔的规则了,五笔的原理就是通过字根的拼凑来拼出一个字,比如 “好” 可以拆分成 “女” 和 “子”,而 v 对应 “女”,b 则对应 “子”,所以要打出 “好” 字,就用 “vb” 就可以了:

其中,这里的 “女” 和 “子” 就是我们常说的 字根 了,而五笔输入法的一大难点在于要记住 字母 -> 字根 的对应关系。别急,咱们继续说五笔的字根划分。

五笔之所以叫 “五笔”,它把我们的键盘分成了 5 个区:

从上到下,分别与 “撇”(蓝),“捺”(橙),“横”(红),“竖”(绿),“折”(黄) 相关/开头的字根,可能你会觉得 Q 上的这个 “鸟” 偏旁也算 “撇”?? 所以说,这里的字根是以笔画的 “相关性”“开头” 为主的,仅做为一个简单的分类参考而已。这里的 “鸟” 旁是以 “撇” 开头写的,所以被归类到左上的 Q。

应该很多人看到这张图都会一脸蒙逼,包括当年的我。为了更好地记住这些字母与字根的对应关系(字根表),有的人还发明了 “口诀” 来把这张图记住:

(1)第一区(横区)
11G 王旁青头戋(兼)五一,(“兼”与“戋”同音)
12F 土士二干十寸雨。
13D 大犬三羊古石厂,(“羊”指羊字底)
14S 木丁西,
15A 工戈草头右框七。(“草头”指“艹”,“右框”即“匚”)
(2)第二区(竖区)
21H 目具上止卜虎皮,(“具上”指具字的上部)
22J 日早两竖与虫依。
23K 口与川,字根稀,
24L 田甲方框四车力。(“方框”即“囗”)
25M 山由贝,下框几。(“下框”即“冂”)
(3)第三区(撇区)
31T 禾竹一撇双人立,(“双人立”即“彳”)
反文条头共三一,(“条头”即“夂”)
32R 白手看头三二斤,(“看头”即“”)
33E 月彡(衫)乃用家衣底。(“家衣底”即“豕”)
34W 人和八,三四里,(“人”和“八”在34里边)
35Q 金勺缺点无尾鱼。(“勺缺点”指“勹”)
犬旁留叉儿一点夕,(指“犭”、“儿”、“夕”)氏无七(妻)。(“氏”去掉“七”)
(4)第四区(捺区)
41Y 言文方广在四一,高头一捺谁人去,(“谁”去“亻”为“”)
42U 立辛两点六门病,(“病”即“疒”)
43I 水旁兴头小倒立。(“水旁”指“氵”)
44O 火业头,四点米,
45P 之字军盖建道底,(即“之、宀、冖、廴、辶”)摘礻(示)衤(衣)。(“礻、衤”摘除右边的点)
(5)第五区(折区)
51N 已半巳满不出己,左框折尸心和羽。
52B 子耳了也框向上,(“框向上”即“凵”)
53V 女刀九臼山朝西。(“山朝西”即“彐”)
54C 又巴马,丢矢矣,(“矣”去“矢”为“厶”)
55X 慈母无心弓和匕,幼无力。(“幼”无“力”为“幺”)

我自己小的时候还被我妈逼着背过一两遍字根表,但是也仅背过一两遍,后面就放弃了。而到了大三的时候,我依然只是背了一两遍然后就放弃了。个人还是觉得背这些 “口诀” 没什么用,关键还是靠实践。

拆分字根是个技术活

有的时候拆字根并不是像上面的 “好” 字那么简单的,比如:“每” 这个字怎么拆?你会说很简单呀:上面的 “撇横” + “母” 不就行了么?那当然是不行的,如果你仔细对照字根表去找是找不到 “母” 这个字根,因为 “母” 就 tmd 不是个字根。别问,问就是规定。

“每” 应该要拆解为 “撇横” + “母没有两点” + “横”:

所以,拆字根也是个技术活。我刚开始学五笔的时候,也会经常要去搜这些字词要怎么拆,而直到现在对于一些字词,我的第一反应也是很难想到怎么拆的。比如我之前实习过的 “大疆” 里的 “疆” 字我经常忘记怎么拆,因为真的太难记了,每次查完又忘了:

查字根这个网站,我是用 我爱五笔网 这个网站来查的。细心的小伙伴会想到这么一个悖论:你都打不出来这个字,你怎么输入这个字来搜索呢?所以,这也是我为什么用 “拼音“ + “五笔” 混合输入法来打字的重要原因之一,简单来说:

杂七杂八的规则

除了上面的 “拆字根” 和 “字根表” 这两套规则,五笔还有非常多的小规则:

五笔每次输入不能超过 5 个码,也就是说一般来说只能打 2 个字,你想打一个句子几乎是不可能的,除非有比较特殊的句子。

那这又有问题了:有的字里面有太多字根了,超过了 4 个怎么办?比如:“键” 这个字:

所以五笔规定,前 3 个为正常顺序的字根,然后一直忽略到最后一个字根,最后一个字根作为这个字的第 4 个码。比如这个 “键” 字最后字根就是 “折捺”,这里直接忽略了右半边的 “竖”。

可能有的人觉得 “键” 这个字最后的字根不是应该 “竖” 才对么?应该先 “折横” 再写右上的 “聿”,所以最后的字根是 “竖”。其实这样的写字的顺序是错误的,应该先 “聿” 再 “折捺”,所以啊,经常写错字的人也很难用五笔来拆字。

有的时候,则并不需要把所有字根都拆分出来,比如 “就” 这个字,只要拆左半边就可以了,相当于简写:

还有一种非常令我讨厌的情况就是 “补码”,靠,这竟然和计算机的二进制一个叫法。举个例子:“千” 这个字,得这么拆:

上面的 “撇” 和 “十” 就能拼凑出 “千” 这个字了,但是由于重码问题(对的,五笔依然有重码问题),所以需要补码来指定才能打这个字。这个 “川” (K 键)就是补码,它的思考顺序是这样的:

  • “千” 最后的笔画是竖,所以定位在竖区
  • 再由于 “千” 这个字是 半包围结构,然后定位在竖区的第 3 个键 K(第 1 键 H 为左右结构,第 2 个键 J 为上下结构,第 3 个键 K 为半包围结构,第 4 个 L 键为全包围结构)

可能这里最让你惊讶的地方不是 “补码” 规则,而是 “千” 这个字竟然 tmd 被归为 半包围结构(说实话,我觉得这是上下结构,不知道为什么被归位为了半包围结构)。

“补码” 虽然使用的频率不是很高,但是一出现就在一些简单字上,所以有的时候还是挺蛋疼的。

相信看到这里的人头都大了,被各种规则绕晕,不过先别关闭页面。之前就说了今天不是来教会大家五笔的,只是分享我和它的故事。

我的五笔学习之路

上面给大家简单科普了一下五笔,同时通过讲五笔的规则来说明五笔输入法真的很难,学习路线特别陡峭,那现在就来讲讲我和它的故事吧。

上面提到了我第一次见到五笔是在我家里的电脑上。由于五笔 “快” 和 “准” 的优势,我父母都是用五笔输入法的,但是难受的是他们不装拼音输入法!导致我童年就没怎么用过电脑来打字,只会用来打红警和 CS 1.6。

其实那会我也是挺想学五笔的,毕竟这能装B,班上的同学都不会只有我会多牛B啊。然后,现实直接打脸:作业都没写完,学,学个屁。

到了初高中的时候,无论是微软拼音还是搜狗拼音等一堆输入法软件、工具已经有了质的飞跃。越来越多人都转向拼音输入法了。

令我印象最深的就是,我之前用微软拼音就是一个一个词来打的,突然有一天我表妹说,你装这个输入法,你试试打一整个句子出来。打完一串拼音之后,虽然有几处明显错误,但是依然能正确识别。

另外一个印象很深的就是原来医院里的医生都从慢慢从五笔输入法转向拼音输入法了。

然后我就一直用拼音用到了大学。直到大三那会有个留学机会,在拿到 Offer 之后整个人就闲下来了。

有一天我爸说我打拼音老师打错,就说要不你学学五笔?我想了想,反正闲着也是闲着,于是就心血来潮想学一学五笔,由此开启了我的五笔学习之路。

刚开始学的时候也是先了解一下游戏规则,不过那会只知道 “拆字根” 和 “背字根”,上面说到那些杂七杂八的规则我是全都不知道的。

估计有人会很好奇我是怎么把这个字根表背下来的。说实话,我不知道我爸是怎么学会五笔的,但是我知道我妈是背字根学会的,所以最初我也背口诀然后背字根表。

但是,背了两天后我发现一个问题:就算背会了还是不能把字打出来,就有点像 “把整本的《JavaScript 权威指南》背会了,还是不会写页面” 那种感觉。

后面,我索性不背了,要拆哪个字就直接去字根表里找对应的字根。同时,为了强迫自己学会五笔,我直接把手机和电脑的默认输入法都调成五笔输入法。除非有紧急事件,我全都五笔打字,几乎半天才憋出来一个字,可以想像那会和我聊天的人是多么难熬。不过,那个时候也没什么人找我聊天,我都不知道这算是幸运还是悲剧。

由于太少人和我聊天,平常实践的机会并不多,所以,为了再次增强我的魔鬼训练,我在手机上还下了一个五笔打字训练的 App。现在,我已经忘了那个App 的名字了,界面类似于下面这样,不是很好看,好在能用:

之后的生活从天天打王者荣耀,改成天天面刷一两小时的字根练习,反正也闲得慌,没事就练一会,练到形成肌肉记忆。从一级、二级、三级简码练习到电脑金山打字通。终于,过了 1 个月之后终于用五笔输入法写下了这两篇文章:

当然写这两篇文章的时候也是吭哧吭哧写的,打字速度肯定比不上现在。没想到已经过了 4 个年了,真是一寸光阴一寸金呀。

最后

总的来说,我并不推荐大家学习五笔,这玩意就跟 Vim 一样,只有通过前期强制使用它们,形成肌肉记忆后,在后期才能慢慢享受它带来的快乐,中间练习的过程非常痛苦。而且五笔不像 Vim,除了分区那里比较好理解,别的一些规则我觉得都是一些类似于解决重码问题的 “降级” 方案,非常不好记,只能通过大量练习才能记住。

现在的输入法在智能化、热门词库和联想功能方面也很成熟了,早就一波超越了五笔输入法,所以五笔对比拼音输入法已经不像以前那么快了。不过在一些单字和词语的场景下,我用五笔会更顺手,所以,目前我的电脑和手机依然用五笔输入法,只不过是以五笔输入法为主,拼单输入法为辅,打字的时候看谁快,谁快用谁。

最后跟大家分享一些五笔的常用装备吧:

  • IOS 手机:清歌五笔输入法(拼音+五笔混用)
  • 电脑:搜狗五笔输入法(拼音+五笔混用)
  • 五笔反查:我爱五笔网

推荐阅读更多精彩内容