徐碼簡明教程
朱宇浩 2022年5月31日初稿
説明
本文字形依據中華人民共和國《古籍印刷通用字規範字形表》《通用規範漢字表》中制定的繁體字標準。
初識徐碼
漢字輸入法
輸入法,顧名思義,就是漢字(或其他字符)錄入進電腦中的方法。大多數時候,輸入的過程,有兩個階段:
- 用戶將漢字,用一定規則,編成一串字母、數字、符號的組合,輸入電腦中。
- 輸入法會串字符,根據一定的規則,轉化爲對應的漢字,顯示到屏幕上。
當我們用「輸入法」指代第二個階段時,一般我們指的是軟件。徐碼可依託 Rime(小狼毫、鼠鬚管等)、小小輸入法、大大輸入法等平臺實現輸入。
本教程中的「輸入法」,特别指代上文中提到的第一階段,亦即:用戶將漢字,用一定規則,編成一串字母、數字、符號的組合,輸入電腦中。
輸入法種類
輸入法,根據其特點,一般分爲三類
- 音碼
- 形碼
- 音形(形音)混合碼。
音碼輸入法,最常見的例子就是拼音了。我們將漢字對應的拼音,直接輸入到軟件中,軟件會顯示對應的漢字供你選擇。
形碼輸入法,最常見的例子是五筆字型。我們將漢字拆成若干部件,輸入每一個部件對應的代碼,軟件會顯示出漢字。常見的形碼,還包括五筆字型,鄭碼,倉頡等等。
徐國銀先生发明的徐碼繁簡通打輸入法(爾雅輸入法),便是一種形碼輸入法。
形碼和音碼的對比
形碼輸入法和拼音最大的區别,在於拼音輸入法,知道讀音,便能輸入漢字。而形碼輸入法,知道寫法,便能輸入漢字。
音碼的優點,不言而喻,只要知道標準的發音,便可以打出字來。同時,漢語拼音也是當代人的必修課,不需要特别地學習,因此,它的學習成本近乎爲零。
音碼缺點,那便是同音字很多,經常需要選字。雖然當代的不少輸入軟片在「智能化」上下足了工夫,但在輸入一些書面語、古文、或者生僻字詞時,還是需要選字。大量翻頁會打輸入的節奏。
形碼的優點,便是像寫字一樣去打字。你不需要知道每個字的具體讀音。同時,因爲編碼比較離散,你甚至不怎麼需要去選字。這在寫作時,保證你的思路不被打斷。在看打、或者打古文的時候,形碼的速度很快。
音碼缺點是,如果你一下字忘了這個字的寫法,那就會卡住,必須臨時改用拼音輸入法(反查)。
至於音碼和形碼哪個更好?這就是仁者見仁、智者見智的問題了。當然,也依賴於你的需求和使用場合。筆者在日常對話時使用拼音,在寫作時使用徐碼,做到揚長避短。
徐碼的特點
徐碼作爲一種形碼輸入法,除了繼承了剛剛所説的形碼的全部重點外,還有一些自身的特點,讓它在衆多輸入法中脫穎而出。這裏僅舉例一二:
- 大字集。也就是説,用徐碼可以打出幾乎所有的 CJK 的漢字(官方碼表更新至擴G區,我拆到了擴H區),單字拆分提示我已經完成了93000個漢字,並且一一直保持保持更新維護。
- 繁簡通。也就是説,你可以直接打出傳統漢字和簡化漢字,且大多數情況下,繁簡字根不佔用同一個碼位,因此繁簡混輸的時候也很少選字。
- 低重碼。也就是説,每個編碼一般只對應唯一的候選項,你不需要進行選字,可以不用打斷思路地進行輸入。
這個對比一下五筆、鄭碼、徐碼、倉頡在不同漢字字符集下的單字全碼的重碼數量。更多比較見此頁面。
其中:
- 「通規」是指大陸《通用規範漢字表》中的 8105 個簡化漢字。測試輸入法簡化字確定性。
- 「國字」是指臺灣《常用國字標準字體表》中的 4808 個繁體漢字。測試輸入法繁體字確定性。
- 「常用繁簡」是指大陸《通用規範漢字表》和臺灣《常用國字標準字體表》中的 9853 個繁簡漢字。測試輸入法繁簡混輸確定性。
- GB2312 是大陸的簡化字集,共有簡化漢字 6764 個。
- BIG5 是臺灣的繁體字集,共有繁體漢字 13069 個。
- GBK 是大陸的繁簡字集,共有繁簡漢字 21003 個。
- 動態重碼率指的是用字頻對重碼字進行加權,只使用大陸《通用規範漢字表》中的簡化漢字。
- 動態選重率指的是用字頻對重碼字中除卻煅選的漢字進行加權,只使用大陸《通用規範漢字表》中的簡化漢字。這裏的假設明文打開記住首選字,並默認將之上屏。因此只有在二選或三選時纔需要選重。更能反映實際簡化漢字輸入體驗。
形碼方案 | 通規 | 國字 | 常用繁簡 | GB2312 | BIG5 | GBK | 動態重碼率 | 動態選重率 | 長度 |
---|---|---|---|---|---|---|---|---|---|
五筆86 | 787 | 357 | 1938 | 537 | 2236 | 6582 | 7.77% | 0.34% | 四碼 |
五筆98 | 763 | 329 | 1867 | 515 | 2150 | 6368 | 8.56% | 0.37% | 四碼 |
五筆06·新世紀 | 831 | 387 | 1970 | 532 | 2373 | 6610 | 7.90% | 0.31% | 四碼 |
鄭碼 | 843 | 311 | 2063 | 563 | 2206 | 6590 | 7.50% | 0.59% | 四碼 |
徐碼22 | 495 | 131 | 678 | 320 | 1104 | 2899 | 3.49% | 0.10% | 四碼 |
倉頡五代 | 498 | 164 | 714 | 422 | 978 | 2893 | 12.07% | 0.89% | 五碼 |
可見,徐碼在任何字集下都有着優異的表現。尤其在「繁簡通打」模式下,它是絶對的王者。
徐碼的資源
徐碼(2022版「新徐碼」)的 QQ 羣是: 761401688。
你可以在群裏和大家討論,同時獲取學習資料、字根圖、最新碼表。
學習步驟
學習徐碼,一般從瞭解拆字和熟悉字根開始。
拆字,就是把漢字按照一定的規則,拆成唯一的部件組合。拆分出來的部件,便叫做「字根」。
這裏所謂的「部件」,不僅包括你我熟知的「偏旁部首」,也包括了一些基本筆劃,甚至是一些漢字。因此,筆畫輸入法(橫豎撇捺折),也是一種特殊的形碼。那麼我們爲什麼要創造别的形碼呢?因爲一個字若用十幾個、甚至幾十個字母代替,太没有效率。故而,我們會截取一些比較大的部件作爲字根。
對於漢語使用者,拆字並不是一件陌生的事情。我們自小就學會將一個字拆成分離的部首,進行檢索。大多數時候,這是非常直觀的。比如
部
字,大家會自然地將他拆分爲立口阝
三個部分。程
字,大家會自然地將他拆分爲禾口王
三個部分。
對於徐碼而言,大多數的字,也是這麼拆分的。並且大多數的偏旁部首,也都是「字根」。
所以恭喜你,對於大多數的漢字,你已經可以憑藉直覺進行拆分了。
本教程推薦的學習步驟如下。
- 看字根圖,大致瞭解徐碼的字根有哪些,以及它們對應的編碼。
- 瞭解徐碼拆字的規則,學會如何得到唯一的拆分方法。
- 學習編碼規則,學會如何將拆好的字根轉化成最終的徐碼。
- 記誦最常用的50個字根的編碼。
- 直接在輸入軟件中練習前500常用字,邊練習邊記憶字根。
- 閲讀進階教程,更加深入地瞭解一些徐碼的特點。
以上內容不論順序,可以交叉或同步進行。
字根編碼
大碼和小碼
在徐碼中,每一個字根,都對應了兩個字母。換句話説,徐碼使用的是雙編碼字根。這一點和鄭碼相同,和五筆不同。特别的:
- 第一個字母叫做大碼,也就是「戶口」,大多數時候,我們只需要用到大碼,所以應該重點記憶。
- 第二個字母叫做小碼,也就是「姓名」,或者説是「識别碼」。只有在部份情況下,需要用到,記憶起來也比較簡單。
字根的大碼和小碼的分佈,並不是隨機的,而是有一定的規律。在接下來的教程中會進行介紹。
字根圖
我們將字根的分佈畫出來,這便是字根圖。如下。
圖中,每一個方框右上角的大寫字母,就是大碼,也就是一群字根的「戶口」。而字根右下角的小寫字母,則是小碼,也就是單個字根的「姓名」。
將大碼和小碼組合起來,就是一個字根的編碼了。比如:
- 「言」這個字根,在字母
Y
的方框裏,同時,右下角的字母是v
,因此,它的編碼就是Yv
。 - 「其」這個字根,在字母
H
的方框裏,同時,右下角的字母是q
,因此,它的編碼就是Hq
。
字根圖是查詢字根的重要工具,初學者應當時常將它放在手邊,以利用查詢。
字根大碼的規律
字根大碼,是按照字根第一筆的筆畫來制定的。
- A-D 包含了首筆爲「折」的字根,例如:
A水
B月
等。 - E-J 包含了首筆爲「橫」的字根,例如:
E王
F大
等。 - K-O 包含了首筆爲「豎」的字根,例如:
K日
L上
等。 - P-V 包含了首筆爲「撇」的字根,例如:
P牛
V入
等。 - W-Z 包含了首筆爲「捺」和「點」的字根,例如:
W穴
Y言
等。
一般地,各字母上的字根呈現以下的規律:
- B 上的字根大多呈現
乛
的特點。比如:阝、了、予、矛、乙、也、飛、艮、子。 - D 上的字根大多呈現
コ
的特點。比如:尸、弓、己、已、巳、巴、韋。 - E 上的字根大多呈現
二
的特點。比如:二、干、镸、長、髟、馬、甫。 - F 吸收了首筆爲橫,且不在 E G H I J 上的其他字根。
- G 上的字根幾乎全部呈現
丆
的特點。比如:石、辰、不、兀、歹、豕、頁、而、面、厂。 - H 上的字根幾乎全部呈現
丌
(一橫兩豎)的特點。比如:卄、革、其、世、瓦、耳、丌。 - I 上的字根大多呈現
木
和三
的特點。比如:木、未、末、來、三、丰。 - J 上的字根大多呈現
土
的特點。比如:土、士、車、雨、爾、古、走。 - K 上的字根全部呈現
日
的特點。比如:日、曰、田、申、由、电、甲、禺、早。 - L 上的字根全部呈現
卜
(豎橫)或兩豎的特點。比如:虫、龰、卜、虍、上、非、鹵、齒、止、刂。 - M 上的字根幾乎全部呈現
⼌
(不封口三面框)和罒
(橫框)的特點。比如:山、⼌、冊、巾、贝、黑、皿。 - N 上的字根幾乎全部呈現
囗
(封口四面框)和門
(對稱)的特點。比如:目、貝、見、骨、囗、門、鬥、且。 - O 上的字根幾乎全部呈現
口
(小口)的特點。比如:口、㗊、黽、𧾷、〇。 - P 上的字根幾乎全部呈現
𠂉
(撇橫)的特點。比如:𥫗、钅、牛、缶、气、生、矢、长。 - Q 上的字根全部呈現
𠂊
(撇折)的特點。比如:魚、鱼、饣、欠、風、殳、几、凡、夕。 - R 上的字根幾乎全部呈現撇橫和撇撇的特點。比如:禾、千、夭、壬、手、毛、九、瓜、舟、爪。
- S 上的字根幾乎全部呈現
勹
(撇折鉤)和兩撇的特點。比如:月、用、乌、鸟、彡、彳、行。 - T 上的字根大多呈現
亻
(撇豎)的特點。比如:身、鼻、隹、川、自。 - U 上的字根全部呈現
白
和人
的特點。比如:人、僉、白、臼、𠂤、鳥、烏、鼠、鬼。 - V 上的字根大多呈現
人
(對稱)的特點。比如:金、入、食、儿 - W 上的字根全部呈現
广
(點橫撇)的特點。比如:宀、广、疒、麻、鹿、穴、衤、礻、衣。 - X 上的字根全部呈現
丷
(相對兩點)的特點。比如:冫、米、羊、為。 - Y 上的字根全部呈現
亠
(點橫)的特點。比如:言、方、亦、亥、音、立、文、辛。 - Z 上的字根全部呈現
讠
(點折)的特點。比如:讠、之、户、门、辶。
其中,只有 A 和 C 鍵上的字根需要特别記憶。
字根小碼的規律
主根
每個大碼下,都有若干字根比較重要,使用頻率高,叫做「主根」。
第一主根的小碼是v
,第二主根是u
。例如:
女
,第一筆爲「折」,故而它的大碼在折區的C
。根據字根圖,「女」是第一主根,所以小碼是v。因此,「女」這個字根的編碼就是Cv
。當你輸入Cv
並按下空格時,就可以打出「女」字了。士
,第一筆爲「橫」,故而它的大碼在橫區的J
。根據字根圖,「士」是第二主根,所以小碼是u。因此,「士」這個字根的編碼就是Ju
。當你輸入Ju
並按下空格時,就可以打出「士」字了。
注意:我在這裏使用大寫和小寫的拉丁字母,是爲了區分大碼和小碼的概念。在實際打字的過程中,不需要區分大小寫。
副根
另一部份字根,我們叫它「副根」。
副根的小碼是除了u
和v
的其他的字母。
一般情況下,副根的小碼是它的漢語拼音的第一個字母(請注意,這只是一種記憶方式,並不是説明徐碼是一種音形碼)。例如:
米
,第一筆爲「點」,故而它的大碼在點區的X
。根據字根圖,它是副根,小碼是m,正好是米字的聲母。因此,「米」這個字根的編碼就是Xm。當你輸入Xm
並按下空格時,就可以打出「米」字了。
字根練習
必練:以下字根是最常見的50個字根,首先學習它們,對於打字的進步提升最大。
口氵艹扌木亻日一人丷亠土冖宀月女丿忄十讠王⼫纟大禾火又⼂厶勹𠂉阝冂山⺕八广钅虫𥫗⺌目𠃌米⻊白夊𠂆立
請通過查詢字根圖,寫出以下字根的編碼,分辨它是主根還是副根,並用輸入法軟件打出這個字根。
選練:以下字根是最常見的第51到第100字根,繼續學習它們,對於打字的進步提升較大。
贝𠂇石田二穴犭爫龷疒匚七厂车刀工乂冫隹龶几雨力弓士小马囗门文止耳户耂方⺊戈夕罒乚西心丨干衤夫丁巾彳
選練:閲讀字根圖上的全部字根,將它們逐一輸入到電腦中,從而對字根編碼以及它的性質有一個初步的印象。
拆字規則
先前説過,拆字,就是把漢字按照一定的規則,拆成唯一的字根組合。
我剛剛用的「部」字爲例,説明了拆字的一般形式。這種將字拆成直觀的、分離的部件的方法,足以應付大部分漢字的拆分了。但在實際使用中,遇到這個問題:一個獨體字,本身不是字根,怎麼辦?這時候,我們要把它繼續拆成更小的字根甚至筆劃。比如:
- 「戋」這個字,我們可以繼續將它拆成「一」和「戈」。查字根圖可知,「一」和「戈」正好是兩個字根,拆字成功。
- 「丸」這個字,我們可以繼續將它拆成「九」和「丶」。查字根圖可知,「九」和「丶」正好是兩個字根,拆字成功。
- 「朱」這個字,我們可以繼續將它拆成「丿」和「未」。查字根圖可知,「丿」和「未」正好是兩個字根,拆字成功。
有時候,獨體字的拆分不是很直觀。比如「再」拆成「王冂」兩個字根。遇到此類字時的拆分,往往需要一些經驗和練習。所以當你遇到不會拆的字時,應該主動查詢它的編碼,及時學習。
更麻煩的情況是,一個字好像有幾種拆分方法,比如:
- 「章」,可以拆「立早」,也可以拆「音十」。
- 「井」,可以拆「二{齐下}」,也可以拆「一廾」。
這種一字多拆的情況,任何形碼中,都是積極避免的。因爲一字多拆,會造成極大的不確定性,並造成編碼的混亂。
徐碼,通過一套嚴密的規則,使每一個漢字,都只有唯一的拆分方案,完全消除了不確定性。
徐碼拆字規則的按優先級排序如下:
- 字根最少
- 符合筆順
- 原形字根
- 字根離散
- 字根相連
- 字根相交
- 筆劃斷開
- 字根取大
可歸納爲:少>順>原>散>連>交>斷>大。
取根時,按優先級從高到低依次,最終得到唯一的拆分方案。
注:「原形字根」是新版徐碼引進的新規則,目的是爲了讓拆字更加直觀。老版徐碼的拆字規則爲,少>散>連>交>斷>順>大
以下爲規則詳細介紹:
字根最少
字根最少,意思是拆分一個字時,應該使得字根的數量最少。比如:
- 「章」拆「立早」而不拆成「立日十」,因爲前者只有兩個字根,而後者爲三個。
符合筆順
符合筆順,指的是字根的每一筆,完全符合原漢字的筆順。比如:
- 「里」可拆成「甲二」,也可拆成「日土」。觀察到「甲二」完全符合「里」字的筆順,故而選擇它。
- 「单」可拆成「丷日十」,也可拆成「丷甲二」。觀察到「丷日十」完全符合「单」字的筆順,故而選擇它。
原形字根
在徐碼的字根,分爲兩類,一部分稱爲原形字根。另有一部分字根,是根據原形字根變形而來的,在字根圖中,這部分變形字根列在字根原型的右下方,以小字顯示。比如:
- 「牛」字根的「丨」變成「丿」。
- 「尸」字根的「丿」變成「丨」。
注意,原形字根和變形字根都一定存在於字根圖中。字根圖没有的字根永遠不能叫做變形字根。
在拆字時,不變形字根的優先級高於變形字根。比如:
- 「失」拆「丿夫」而不拆「牛丶」,因爲「牛丶」使用了變形根。
字根離散
字根離散,指的是兩個字根互相分離。比如:
- 「部」中的「立口阝」,便是三個分離的字根。
字根相連
字根相連,指的是兩個字根互相連接。比如:
- 「章」拆「立早」而不拆成「音十」,因爲「立」和「早」分開,但「日」和「十」相連。因爲「字根離散」優先於「字根相連」,故而拆成「立早」。
字根相交
字根相交,指的是兩個字根互相交叉。比如:
- 「唐」拆成「广コ古」三個字根,其中的「コ」和「古」兩根便是交的。
- 「再」拆成「王冂」兩個字根,便是相交的。
筆劃斷開
筆劃斷開,指的是將一個筆劃斷開。比如:
- 「我」拆成「丿扌戈」三個字根,其中的「扌」和「戈」兩根的橫本是一筆寫成。但如果不斷開這一橫,就要拆成「丿扌乚丿丶」五個字根。爲了讓字根數量最少,我們將不得不將橫斷開。
字根取大
字根取大,指的是按照筆順拆字時,讓靠前的字根的筆劃數儘量地多。比如:
- 「井」拆成「二{齐下}」,而不拆成「一廾」,因爲「字根取大」原則。讓靠前的字根的筆劃數儘量地多,這裏,「二」的筆劃數大於「一」。
字根排序規則
將漢字拆分後,我們需要將它們進行排序。大多數時候,這是非常直觀的。但有時並非如此,需要進行定義。
徐碼字根排序規則,是字根首筆符合筆順,意思是拆分一個漢字時,所有字根的首個筆劃,符合這個漢字的筆順。比如:
- 「安」拆「宀女」而不拆成「女宀」,因爲按照漢字的筆順,「寶蓋頭」第一的筆「點」,排在「女」字第一筆的「折」之前。故而應該按照「宀女」排序。
- 「丸」拆「九丶」而不拆成「丶九」,因爲按照漢字的筆順,「九」第一的筆「撇」,排在「捺點」之前。故而應該按照「九丶」排序。
請注意,徐碼最終的字根排序,只要求字根的首筆符合筆順,而不是要求字根每一筆都符合筆順,比如:
- 「为」的筆順是「點撇折點」。
{兩點}
字根的第一筆「點」爲整個「为」字的第一筆,雖然``{兩點}字根的最後一筆是「为」字的最後一筆,
`字根依舊排在最前面。所以「为」拆「{兩點}力」。 - 「国」拆「囗王丶」而不拆成「冂王丶一」,因爲前者只有三個字根,而後者爲四個。「字根最少」優先於「字根首筆符合筆順」。同時,
囗
字根的第一筆「豎」爲整個「国」字的第一筆,雖然囗
字根的最後一筆是「国」字的最後一筆,但囗
字根依舊排在最前面。
拆字舉例
實際拆字時,如果你感覺拆分方法不唯一,那麽可以用以下方法找到最優解:
- 列出所有可能的候選拆分方案。
- 依照「少>順>原>散>連>交>斷>大」的規則順序,依次比較各個候選拆分。
- 如果所有的候選拆分都不滿足本條規則,則進入下條規則。
- 如果部分的候選拆分滿足本條規則,則該部分的候選拆分方案進入下條規則。
- 直到只有一個候選拆分方案勝出。
注:「取大原則」又稱兜底原則,保證最終只有一個候選方案勝出。
以下通過部分例字來説明拆分規則:
「重」字
「重」字,候選拆分「丿車一」和「千日二」。
依照「少>順>原>散>連>交>斷>大」的規則比較。
- 同時滿足「字根最少」。
- 「丿車一」滿足「符合筆順」,「千日二」不滿足。
- 「丿車一」勝。
「朱」字
「朱」字,候選拆分「丿未」和「牛八」。
依照「少>順>原>散>連>交>斷>大」的規則比較。
- 同時滿足「字根最少」。
- 同時滿足「符合筆順」。
- 「丿未」滿足「原型字根」,「牛八」不滿足,因爲「牛」的豎變撇。
- 「丿未」勝。
單字編碼規則
學習了徐碼的拆字規則後,我們可以將任何一個漢字拆成唯一的字根組合。最後一步,便是把字根轉爲徐碼編碼。
單字的編碼一般是由4個字母構成,部分情況下是2個或3個字母。
在徐碼中,無論一個字能拆成幾個字根,我們只關心其中的四個根,分别是:
- 第一根:首根
- 第二根:次根
- 倒數第二根:次末根
- 倒數第一根:最末根
在編碼時,我們首先判斷一個字的首根是主根還是副根。
首根爲主根
首根爲主根時,有兩條規則:
- 依次取首根、次根、次末根、最末根的大碼。
- 不足四碼時,補上最末根的小碼。
舉例説明:
- 「嫩」字拆成
女Cv 木Iv 口Ov 攵pp
四根。分别對應了首根、次根、次末根、最末根。我們直接取四個字根的大碼CIOP
即可出字。 - 「整」字拆成
木口攵一止
五根。我們只取首根、次根、次末根、最末根,也就是木Iv 口Ov 一Gu 止Lz
的大碼,輸入IOGL
即可出字。 - 「算」字拆成
𥫗目廾
,只有三根,所以我們取全部根,也就是𥫗Pv 目Nv 廾Hv
的大碼,即PNH
。此時,注意到不足四碼,故而補上最末根的小碼v
。輸入PNGv
即可出字。 - 「好」字拆成
女子
,只有兩根,所以我們取全部根,也就是女Cv 子Bz
的大碼,即CB
。此時,注意到不足四碼,故而補上最末根的小碼z
。輸入CBz
即可出字。
再次強調,首根爲主根時,需要取4個根。
首根爲副根
首根爲副根時,有三條規則:
- 依次取首根、次根、最末根的大碼。
- 不足三碼時,補上最末根的小碼。
- 在末尾添加首根的小碼作爲識别。
舉例説明:
- 「织」字拆成
纟Cj 口Ov 八Tu
三根。分别對應了首根、次根、最末根。我們取三個字根的大碼COT
,再添上首根的小碼j
作識别。輸入COTj
即可出字。 - 「微」字拆成
彳Sr 山Iv 一Gu 几Ov 攵Pp
五根。我們只取首根、次根、最末根,也就是彳Sr 山Iv 攵Pp
的大碼,再添上首根的小碼r
作識别。輸入SIPr
即可出字。 - 「认」字拆成
讠人
,只有兩根,所以我們取全部根,也就是讠Zy 人Uu
的大碼,即ZU
。此時,注意到不足三碼,故而補上最末根的小碼u
,再添上首根的小碼y
作識别。輸入ZUuy
即可出字。
再次強調,首根爲副根時,只需要取3個根。
末尾添加首根的小碼,有時候新手會需要一段時間來適應。好在由於簡碼的存在,大多數的時候,我們都不需要輸入最後的識别碼就能出字。
字根字
字根字,依次取其大小碼即可出字。比如:
- 「木」字是字根字(主根),輸入大小碼
Iv
即可出字。 - 「骨」字是字根字(副根),輸入大小碼
Ng
即可出字。
空格鍵的使用
在很多輸入法軟件中,空格鍵(以下用_
表示)用來上屏首選字。
根據以上的學習內容,我們發現:徐碼的編碼最長不超過4個字母。由於這個特性,我們在輸入完編碼後,不一定需要按空格鍵將字打上屏幕。
空格鍵只在以下情況需要使用:
- 一個字的編碼低於4位,需要按空格鍵上屏首選。比如「人」字,需要按
Uu_
上屏。 - 一個字的編碼等於4位,後面没有其他的字需要輸入,則需要按空格鍵上屏首選。
以下情況,不需要使用空格鍵:
- 一個字的編碼等於4位,且有後續字符等待輸入。我們不需要按空格鍵。只要直接輸入下一個字的首碼,這個字就會自動上屏。我們稱之爲「五碼頂屏」。例如:我們打「霁雨」二字,「霁」字的編碼是
JYTy
。輸入y
後,我們直接輸入「雨」字的編碼Jy
,則「霁」字會自動上屏。
簡碼設置
學完了徐碼的單字編碼,我們發現,徐碼的單字碼長一般是2到4位之間。不少常用的字,碼長是4位,比如字頻第一的「的」字,編碼爲USUb
。
一種科學的輸入策略,應該使得常用字的碼長更低,從而加快輸入的速度。試想,如果輸入「的」字,每次都要按USUb
四下按鍵,真是太浪費時間了。
形碼對此的優化方式,就是設置簡碼,也就是給部分漢字設置更短的編碼:比如,我們在輸入「的」時,只要按上一個字母和空格鍵,就能實現輸入。
在徐碼中,簡碼的設置十分科學,使得每一個字簡碼和全碼的編碼規則保持一致。以下進行介紹。
一級簡碼字
一級簡碼字,又稱一簡字,指的是用一個字母爲編碼實現輸入的漢字。徐碼中,有26個高頻漢字設置爲一簡字,只要按下一個字母,加上空格,即可上屏。
一簡字的編碼,就是該字全碼的第一個字母。比如:
- 「我」全碼爲
PFFg
,一級簡碼爲P
。輸入P_
即可實現上屏。 - 「的」全碼爲
USWb
,一級簡碼爲U
。輸入U_
即可實現上屏。
從A到Z排列,一級簡碼字分别是以了发那要大一在事地是上同国中我多和得他的儿家道这为
。
在字根圖中,一簡字就是每個字母方框的左上角的漢字。
在我們的日常交流中,一簡字大約佔據了25%的使用頻率。在徐碼中,只需要按兩個按鍵,這有效提升了輸入的速度。
二級簡碼字
二級簡碼字,又稱二簡字,指的是用兩個字母爲編碼實現輸入的漢字。徐碼中,有676個高頻漢字設置爲二簡字,只要按下两個字母,加上空格,即可上屏。
一簡字的編碼,就是該字全碼的前两個字母。比如:
- 「起」全碼爲
JDjz
,二級簡碼爲JD
。輸入JD_
即可實現上屏。 - 「可」全碼爲
EOvd
,二級簡碼爲EO
。輸入EO_
即可實現上屏。
三級簡碼字
三級簡碼字,又稱三簡字,指的是用三個字母爲編碼實現輸入的漢字,只要按下三個字母,加上空格,即可上屏。
三簡字的編碼,就是該字全碼的前三個字母。這裏不再舉例。
注意到,三簡字需要按四個按鍵才能上屏,同輸入單字全碼按鍵數一樣,因此,三簡字的設置主要爲了以下目的:
- 騰出四碼碼位,實現避重。
- 首根爲副根的字,在末尾不用輸入首根的小碼。只有在部分時候需要輸入識别碼定字。這樣可以減輕記憶負擔,不需要返回去思考首根的小碼是什麼。
- 減少單手連續擊鍵的可能性,減輕手指的負擔。
三級簡碼字,可在打字時進行熟悉,不需要特别去記憶。
詞語編碼規則
除了設置簡碼,徐碼還將常用的詞語,也編成4個字母的編碼。這樣可以降低每一個字的平均碼長,提高打字速度。
徐碼的詞語編碼規則,分爲三種情況。
兩字詞
兩字詞,取每個字全碼的前兩碼即可。比如:
- 「人生」:「人」的編碼爲
Uu
,「生」的編碼爲Ps
。因此,「人生」的編碼爲UuPs
。 - 「事情」:「事」的編碼爲
IOBu
,「情」的編碼爲UESv
。因此,「事情」的編碼爲IOUE
。
三字詞
三字詞,取前兩字的第一碼,和第三個字的前兩碼即可。比如:
- 「泡泡糖」:「泡」的編碼爲
ZSDs
,「糖」的編碼爲XWjm
。因此,「泡泡糖」的編碼爲ZZXW
。 - 「星期三」:「星」的編碼爲
KPs
,「期」的編碼爲HSvq
,「三」的編碼爲Is
。因此,「星期三」的編碼爲KHIs
。
四字詞及以上
四字詞及以上,取前三字的第一碼,和最後一個字的第一碼即可。比如:
- 「狐假虎威」:「狐」的編碼爲
VRgq
,「假」的編碼爲TDDD
,「虎」的編碼爲LQjh
,「威」的編碼爲FGCw
。因此,「狐假虎威」的編碼爲VTLF
。 - 「中华人民共和国」:這是一個七字詞,所以我們只看前三字和最後一字「中」、「华」、「人」、「国」。「中」的編碼爲
OKu
,「华」的編碼爲TVEu
,「人」的編碼爲Uu
,「国」的編碼爲NEWw
。因此,「中华人民共和国」的編碼爲OTUN
。
詞語輸入的優缺點
用詞語的方式進行輸入,優點在於降低了每個字的平均碼長。試想「我们今天一起吃饭」這個句子。
- 如果打單字全碼的話,需要按
PFFgTZm_UW_Bu_GFd_Gu_JDjzOPBi_QRDi_
。 - 如果打單字簡碼的話,需要按
P_TZm_Uwb_GF_G_JD_Op_QRd_
。 - 如果打詞語全碼的話,需要按
PFTZUWGFGuJDOPQR_
。
可以看到,詞語全碼有效降低了按鍵的次數。
但是,詞語輸入也有其缺點,最主要的缺點包括:
- 如果詞庫太小,不是每個詞語都在詞庫中。很多時候還是需要打單字。
- 如果詞庫太大,則會出現大量的重碼,需要進行選擇,破壞了形碼輸入的流暢性。
- 你輸入一個詞語,卻發現它並不在詞庫中,就需要删除後重新輸入單字。讓人感覺不悅。
- 人工分詞需要消耗額外的注意力。
因此,精簡詞庫,熟悉詞庫,打單字和打詞語相結合,是形碼高手們的修煉之路。
進階教程
口囗之辨
口(音kǒu
),編碼爲Ov
,是個主根。囗(音wéi
),編碼爲Nw
,是個副根。這兩個根如何區分?
答案是,如果方框裏有完整的筆畫,用「囗」Nw
。否則一律用「口」Ov
。例如:
- 「国」字中,有完整的筆畫,故而必須用「囗」
Nw
。 - 「中」字中,雖然「⼁」穿「口」而過,但並未被完全包含在「口」中。由於「口」中没有完整的字根,故而用「口」
Ov
。
這個規則不影響含「口」形的其他字根。比如「古」字中的「口」。例如:
- 「鄙」字左下方拆成「古口」,不拆成「十囗口」,儘管「古」中的方框包含了完整筆畫。
「日」「曰」字根的选取原则
當前的徐碼對方「日」「曰」的區分,是基於形狀的。也就是説:凡是長大於高的都爲「曰」,凡是長短於高的都爲「日」。但這個方法會跟隨着字體的不同而不同,有時候不合字源,也不統一。例如:
- 「書」字源于「聿者」。徐码中「書」下为「曰」,但「者」下为「日」,取码不统一。
- 「曹」古字为「東東口」。在徐码中,「曹」下为「日」,不符合字源。
另外一種區分方法是基于字源。也就是説:凡是在古文中作「口」形,之后隶變爲「曰」形或「甘」形的字,在徐碼中作「曰」。但這個方法對方一般的使用者難度太大,且分析字源會有疏漏之處,不應用於輸入法。
第三種方法是不做區分。在漢字中,存在「日曰」對立的字形,只有三組,分别为:「日曰」、「汨汩」、「曶㫚」。在其他的情况下,不存在對立,也就不存在混淆問題。因此,取「日」还是取「曰」,可以採取更簡單的方法。卽:除了上述三組對立情况外,全部取「日」Kv
根。換句話説,「曰」Ku
根只需要在「曰」「汩」「㫚」三處使用卽可。這樣一來,可以顯著降低使用者的記憶和學習負擔。
然而,第三種方法還是會造成大量重碼,比如「旭」和「旮」。因爲,在徐碼中,「日」「曰」的區分,取決於字根的長寬。字形則依據 GB18030 標準。
勹𠂊之辨
「旬」的外框「勹」Su
,同「敖」左下的「𠂊」Qu
都是撇加橫折鉤,但是一個在S
上,一個在Q
上。如何分辨呢?
答案是,如果它包圍了一個完整的筆畫,用「勹」Su
。否則一律用「𠂊」Qu
。例如:
- 「勺」字中,有完整的筆畫,故而必須用「勹」
Su
。 - 「㡬」字中,没有完整的筆畫,故而必須用「𠂊」
Qu
。
徐碼存疑和商榷
以下是關於徐碼中部分規則的存疑和商榷。
「妻」字
此字官方碼表拆作「十彐女」。我提議拆作「キコ女」。
依照「少>順>原>散>連>交>斷>大」的規則比較。
- 同時滿足「字根最少」。
- 同時不滿足「符合筆順」。
- 同時滿足「原形字根」。
- 同時不滿足「散連」。
- 同時滿足「交」。
- 同時不滿足「斷」。
- 「キコ女」滿足「字根取大」,「十彐女」不滿足。
- 「キコ女」勝。