徐碼繁簡通打輸入法簡明教程

Xuma Input Scheme

Posted by Yuhao Zhu on May 1, 2022

forFudan 寫於 2022年5月31日 https://zhuyuhao.com/xuma/tutorial

點此閱讀簡體版本

1. 初識徐碼

1.1. 漢字輸入法

輸入法,顧名思義,就是漢字(或其他字符)錄入進電腦中的方法。大多數時候,輸入的過程,有兩箇階段:

  1. 用戶將漢字,用一定規則,編成一串字母、數字、符號的組合,輸入電腦中。
  2. 輸入法會串字符,根據一定的規則,轉化爲對應的漢字,顯示到屏幕上。

當我們用「輸入法」指代第二箇階段時,一般我們指的是軟件。徐碼可依託 Rime(小狼毫、鼠鬚管等)、小小輸入法、大大輸入法等平臺實現輸入。

點擊此處,瞭解如何在各平臺(Windows, Macos, 安卓,iOS)上安裝並使用 RIME·徐碼。

本教程中的「輸入法」,特別指代上文中提到的第一階段,亦即:用戶將漢字,用一定規則,編成一串字母、數字、符號的組合,輸入電腦中。

1.2. 輸入法種類

輸入法,根據其特點,一般分爲三類

  • 音碼
  • 形碼
  • 音形(形音)混合碼。

音碼輸入法,最常見的例子就是拼音了。我們將漢字對應的拼音,直接輸入到軟件中,軟件會顯示對應的漢字供你選擇。

形碼輸入法,最常見的例子是五筆字型。我們將漢字拆成若干部件,輸入每一箇部件對應的代碼,軟件會顯示出漢字。常見的形碼,還包括五筆字型,鄭碼,倉頡等等。

徐国银老師发明的徐碼繁簡通打輸入法(爾雅輸入法),便是一種形碼輸入法。

1.3. 形碼和音碼的對比

形碼輸入法和拼音最大的區別,在於拼音輸入法,知道讀音,便能輸入漢字。而形碼輸入法,知道寫法,便能輸入漢字。

音碼的優點,不言而喻,只要知道標準的發音,便可以打出字來。同時,漢語拼音也是當代人的必修課,不需要特別地學習,因此,它的學習成本近乎爲零。

音碼缺點,那便是同音字很多,經常需要選字。雖然當代的不少輸入軟片在「智能化」上下足了工夫,但在輸入一些書面語、古文、或者生僻字詞時,還是需要選字。大量翻頁會打輸入的節奏。

形碼的優點,便是像寫字一樣去打字。你不需要知道每箇字的具體讀音。同時,因爲編碼比較離散,你甚至不怎麼需要去選字。這在寫作時,保證你的思路不被打斷。在看打、或者打古文的時候,形碼的速度很快。

音碼缺點是,如果你一下字忘了這箇字的寫法,那就會卡住,必須臨時改用拼音輸入法(反查)。

至於音碼和形碼哪箇更好?這就是仁者見仁、智者見智的問題了。當然,也依賴於你的需求和使用場合。筆者在日常對話時使用拼音,在寫作時使用徐碼,做到揚長避短。

1.4. 徐碼的特點

徐碼作爲一種形碼輸入法,除了繼承了剛剛所説的形碼的全部重點外,還有一些自身的特點,讓它在衆多輸入法中脫穎而出。這裏僅舉例一二:

  • 大字集。也就是説,用徐碼可以打出幾乎所有的 CJK 的漢字(官方碼表更新至擴G區,我拆到了擴H區),單字拆分提示我已經完成了89000箇漢字,並且一一直保持保持更新維護。
  • 繁簡通。也就是説,你可以直接打出傳統漢字和簡化漢字,且大多數情況下,繁簡字根不佔用同一箇碼位,因此繁簡混輸的時候也很少選字。
  • 低重碼。也就是説,每箇編碼一般只對應唯一的候選項,你不需要進行選字,可以不用打斷思路地進行輸入。

這箇對比一下五筆、鄭碼、徐碼、倉頡在不同漢字字符集下的單字全碼的重碼數量。更多比較見此頁面 https://zhuyuhao.com/chinese-input-schemes-statistics/

其中:

  • 「通規」是指大陸《通用規範漢字表》中的 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% 五碼定長

可見,徐碼在任何字集下都有着優異的表現。尤其在繁簡通打模式下,它是絶對的王者。

1.5. 徐碼的資源

徐碼(2022版「新徐碼」)的 QQ 羣是: 761401688。

你可以在羣裏和大家討論,同時獲取學習資料、字根圖、最新碼表。

1.6. 學習步驟

學習徐碼,一般從瞭解拆字和熟悉字根開始。

拆字,就是把漢字按照一定的規則,拆成唯一的部件組合。拆分出來的部件,便叫做「字根」。

這裏所謂的「部件」,不僅包括你我熟知的「偏旁部首」,也包括了一些基本筆劃,甚至是一些漢字。因此,筆畫輸入法(橫豎撇捺折),也是一種特殊的形碼。那麼我們爲什麼要創造別的形碼呢?因爲一箇字若用十幾箇、甚至幾十箇字母代替,太没有效率。故而,我們會截取一些比較大的部件作爲字根。

對於漢語使用者,拆字並不是一件陌生的事情。我們自小就學會將一箇字拆成分離的部首,進行檢索。大多數時候,這是非常直觀的。比如

  • 字,大家會自然地將他拆分爲立口阝三箇部分。
  • 字,大家會自然地將他拆分爲禾口王三箇部分。

對於徐碼而言,大多數的字,也是這麼拆分的。並且大多數的偏旁部首,也都是「字根」。

所以恭喜你,對於大多數的漢字,你已經可以憑藉直覺進行拆分了。

本教程推薦的學習步驟如下。

  1. 看字根圖,大致瞭解徐碼的字根有哪些,以及它們對應的編碼。
  2. 瞭解徐碼拆字的規則,學會如何得到唯一的拆分方法。
  3. 學習編碼規則,學會如何將拆好的字根轉化成最終的徐碼。
  4. 記誦最常用的50箇字根的編碼。
  5. 直接在輸入軟件中練習前500常用字,邊練習邊記憶字根。
  6. 閲讀進階教程,更加深入地瞭解一些徐碼的特點。

以上內容不論順序,可以交叉或同步進行。

2. 字根編碼

2.1. 大碼和小碼

在徐碼中,每一箇字根,都對應了兩箇字母。換句話説,徐碼使用的是雙編碼字根。這一點和鄭碼相同,和五筆不同。特別的:

  • 第一箇字母叫做大碼,也就是「戶口」,大多數時候,我們只需要用到大碼,所以應該重點記憶。
  • 第二箇字母叫做小碼,也就是「姓名」,或者説是「識別碼」。只有在部份情況下,需要用到,記憶起來也比較簡單。

字根的大碼和小碼的分佈,並不是隨機的,而是有一定的規律。在接下來的教程中會進行介紹。

2.2. 字根圖

我們將字根的分佈畫出來,這便是字根圖。如下。

圖中,每一箇方框右上角的大寫字母,就是大碼,也就是一群字根的「戶口」。而字根右下角的小寫字母,則是小碼,也就是單箇字根的「姓名」。

將大碼和小碼組合起來,就是一箇字根的編碼了。比如:

  • 「言」這箇字根,在字母Y的方框裏,同時,右下角的字母是v,因此,它的編碼就是Yv
  • 「其」這箇字根,在字母H的方框裏,同時,右下角的字母是q,因此,它的編碼就是Hq

字根圖是查詢字根的重要工具,初學者應當時常將它放在手邊,以利用查詢。

徐碼字根圖

2.3. 字根大碼的規律

字根大碼,是按照字根第一筆的筆畫來制定的。

  • 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 鍵上的字根需要特别記憶。

2.4. 字根小碼的規律

3.4.1. 主根

每箇大碼下,都有若干字根比較重要,使用頻率高,叫做「主根」。

第一主根的小碼是v,第二主根是u。例如:

  • ,第一筆爲「折」,故而它的大碼在折區的C。根據字根圖,「女」是第一主根,所以小碼是v。因此,「女」這箇字根的編碼就是Cv。當你輸入Cv並按下空格時,就可以打出「女」字了。
  • ,第一筆爲「橫」,故而它的大碼在橫區的J。根據字根圖,「士」是第二主根,所以小碼是u。因此,「士」這箇字根的編碼就是Ju。當你輸入Ju並按下空格時,就可以打出「士」字了。

注意:我在這裏使用大寫和小寫的拉丁字母,是爲了區分大碼和小碼的概念。在實際打字的過程中,不需要區分大小寫。

3.4.2. 副根

另一部份字根,我們叫它「副根」。

副根的小碼是除了uv的其他的字母。

一般情況下,副根的小碼是它的漢語拼音的第一箇字母(請注意,這只是一種記憶方式,並不是説明徐碼是一種音形碼)。例如:

  • ,第一筆爲「點」,故而它的大碼在點區的X。根據字根圖,它是副根,小碼是m,正好是米字的聲母。因此,「米」這箇字根的編碼就是Xm。當你輸入Xm並按下空格時,就可以打出「米」字了。

3.4.3. 字根練習

必練:以下字根是最常見的50箇字根,首先學習它們,對於打字的進步提升最大。

口氵艹扌木亻日一人丷亠土冖宀月女丿忄十讠王⼫纟大禾火又⼂厶勹𠂉阝冂山⺕八广钅虫𥫗⺌目𠃌米⻊白夊𠂆立

請通過查詢字根圖,寫出以下字根的編碼,分辨它是主根還是副根,並用輸入法軟件打出這箇字根。

選練:以下字根是最常見的第51到第100字根,繼續學習它們,對於打字的進步提升較大。

贝𠂇石田二穴犭爫龷疒匚七厂车刀工乂冫隹龶几雨力弓士小马囗门文止耳户耂方⺊戈夕罒乚西心丨干衤夫丁巾彳

選練:閱讀字根圖上的全部字根,將它們逐一輸入到電腦中,從而對字根編碼以及它的性質有一箇初步的印象。

3. 拆字規則

先前説過,拆字,就是把漢字按照一定的規則,拆成唯一的字根組合。

我剛剛用的「部」字爲例,説明了拆字的一般形式。這種將字拆成直觀的、分離的部件的方法,足以應付大部分漢字的拆分了。但在實際使用中,遇到這箇問題:一箇獨體字,本身不是字根,怎麼辦?這時候,我們要把它繼續拆成更小的字根甚至筆劃。比如:

  • 「戋」這箇字,我們可以繼續將它拆成「一」和「戈」。查字根圖可知,「一」和「戈」正好是兩箇字根,拆字成功。
  • 「丸」這箇字,我們可以繼續將它拆成「九」和「丶」。查字根圖可知,「九」和「丶」正好是兩箇字根,拆字成功。
  • 「朱」這箇字,我們可以繼續將它拆成「丿」和「未」。查字根圖可知,「丿」和「未」正好是兩箇字根,拆字成功。

有時候,獨體字的拆分不是很直觀。比如「再」拆成「王冂」兩箇字根。遇到此類字時的拆分,往往需要一些經驗和練習。所以當你遇到不會拆的字時,應該主動查詢它的編碼,及時學習。

更麻煩的情況是,一箇字好像有幾種拆分方法,比如:

  • 「章」,可以拆「立早」,也可以拆「音十」。
  • 「井」,可以拆「二{齐下}」,也可以拆「一廾」。

這種一字多拆的情況,任何形碼中,都是積極避免的。因爲一字多拆,會造成極大的不確定性,並造成編碼的混亂。

徐碼,通過一套嚴密的規則,使每一箇漢字,都只有唯一的拆分方案,完全消除了不確定性。

徐碼拆字規則的按優先級排序如下:

  1. 字根最少
  2. 原形字根(新版徐碼引進的新規則,老版徐碼可省略這一條)
  3. 字根離散
  4. 字根相連
  5. 字根相交
  6. 筆劃斷開
  7. 符合筆順
  8. 字根取大

可歸納爲:少>原>散>連>交>斷>順>大

取根時,按優先級從高到低依次,最終得到唯一的拆分方案。

以下爲規則詳細介紹:

3.1. 字根最少

字根最少,意思是拆分一箇字時,應該使得字根的數量最少。比如:

  • 「章」拆「立早」而不拆成「立日十」,因爲前者只有兩箇字根,而後者爲三箇。

3.2. 原形字根(新版徐碼引進的新規則,老版徐碼可省略這一條)

在徐碼的字根,分爲兩類,一部分稱爲原形字根。另有一部分字根,是根據原形字根變形而來的,在字根圖中,這部分變形字根列在字根原型的右下方,以小字顯示。比如:

  • 「牛」字根的「丨」變成「丿」。
  • 「尸」字根的「丿」變成「丨」。

注意,原形字根和變形字根都一定存在於字根圖中。字根圖没有的字根永遠不能叫做變形字根。

在拆字時,不變形字根的優先級高於變形字根。比如:

  • 「失」拆「丿夫」而不拆「牛丶」,因爲「牛丶」使用了變形根。

3.3. 字根離散

字根離散,指的是兩箇字根互相分離。比如:

  • 「部」中的「立口阝」,便是三箇分離的字根。

3.4. 字根相連

字根相連,指的是兩箇字根互相連接。比如:

  • 「章」拆「立早」而不拆成「音十」,因爲「立」和「早」分開,但「日」和「十」相連。因爲「字根離散」優先於「字根相連」,故而拆成「立早」。

3.5. 字根相交

字根相交,指的是兩箇字根互相交叉。比如:

  • 「唐」拆成「广コ古」三箇字根,其中的「コ」和「古」兩根便是交的。
  • 「再」拆成「王冂」兩箇字根,便是相交的。

3.6. 筆劃斷開

筆劃斷開,指的是將一箇筆劃斷開。比如:

  • 「我」拆成「丿扌戈」三箇字根,其中的「扌」和「戈」兩根的橫本是一筆寫成。但如果不斷開這一橫,就要拆成「丿扌乚丿丶」五箇字根。爲了讓字根數量最少,我們將不得不將橫斷開。

3.7. 符合筆順

符合筆順,指的是字根的每一筆,完全符合原漢字的筆順。比如:

  • 「里」可拆成「甲二」,也可拆成「日土」。觀察到「甲二」完全符合「里」字的筆順,故而選擇它。
  • 「单」可拆成「丷日十」,也可拆成「丷甲二」。觀察到「丷日十」完全符合「单」字的筆順,故而選擇它。

3.8. 字根取大

字根取大,指的是按照筆順拆字時,讓靠前的字根的筆劃數儘量地多。比如:

  • 「井」拆成「二{齐下}」,而不拆成「一廾」,因爲「字根取大」原則。讓靠前的字根的筆劃數儘量地多,這裏,「二」的筆劃數大於「一」。

3.9. 字根排序規則

將漢字拆分後,我們需要將它們進行排序。大多數時候,這是非常直觀的。但有時並非如此,需要進行定義。

徐碼字根排序規則,是字根首筆符合筆順,意思是拆分一箇漢字時,所有字根的首箇筆劃,符合這箇漢字的筆順。比如:

  • 「安」拆「宀女」而不拆成「女宀」,因爲按照漢字的筆順,「寶蓋頭」第一的筆「點」,排在「女」字第一筆的「折」之前。故而應該按照「宀女」排序。
  • 「丸」拆「九丶」而不拆成「丶九」,因爲按照漢字的筆順,「九」第一的筆「撇」,排在「捺點」之前。故而應該按照「九丶」排序。

請注意,徐碼只要求字根的首筆符合筆順,而不是要求字根每一筆都符合筆順,比如:

  • 「为」的筆順是「點撇折點」。{兩點}字根的第一筆「點」爲整箇「为」字的第一筆,雖然``{兩點}字根的最後一筆是「为」字的最後一筆,{兩點}`字根依舊排在最前面。所以「为」拆「{兩點}力」。
  • 「国」拆「囗王丶」而不拆成「冂王丶一」,因爲前者只有三箇字根,而後者爲四箇。「字根最少」優先於「字根首筆符合筆順」。同時,字根的第一筆「豎」爲整箇「国」字的第一筆,雖然字根的最後一筆是「国」字的最後一筆,但字根依舊排在最前面。

3.10. 拆字舉例

以下通過部分例字來説明拆分規則:

「重」拆「丿車一」,不拆「千日二」。

  • 同時滿足「字根最少」。
  • 同時滿足「不變形字根」。
  • 同時不滿足「字根離散」。
  • 「丿車一」滿足「字根相連」,「千日二」不滿足。
  • 故而取「丿車一」。

4. 單字編碼規則

學習了徐碼的拆字規則後,我們可以將任何一箇漢字拆成唯一的字根組合。最後一步,便是把字根轉爲徐碼編碼。

單字的編碼一般是由4箇字母構成,部分情況下是2箇或3箇字母。

在徐碼中,無論一箇字能拆成幾箇字根,我們只關心其中的四箇根,分別是:

  • 第一根:首根
  • 第二根:次根
  • 倒數第二根:次末根
  • 倒數第一根:最末根

在編碼時,我們首先判斷一箇字的首根是主根還是副根

4.1. 首根爲主根

首根爲主根時,有兩條規則:

  1. 依次取首根、次根、次末根、最末根的大碼
  2. 不足四碼時,補上最末根的小碼

舉例説明:

  • 「嫩」字拆成女Cv 木Iv 口Ov 攵pp四根。分別對應了首根、次根、次末根、最末根。我們直接取四箇字根的大碼CIOP即可出字。
  • 「整」字拆成木口攵一止五根。我們只取首根、次根、次末根、最末根,也就是木Iv 口Ov 一Gu 止Lz的大碼,輸入IOGL即可出字。
  • 「算」字拆成𥫗目廾,只有三根,所以我們取全部根,也就是𥫗Pv 目Nv 廾Hv的大碼,即PNH。此時,注意到不足四碼,故而補上最末根的小碼v。輸入PNGv即可出字。
  • 「好」字拆成女子,只有兩根,所以我們取全部根,也就是女Cv 子Bz的大碼,即CB。此時,注意到不足四碼,故而補上最末根的小碼z。輸入CBz即可出字。

再次強調,首根爲主根時,需要取4箇根

4.2. 首根爲副根

首根爲副根時,有三條規則:

  1. 依次取首根、次根、最末根的大碼
  2. 不足三碼時,補上最末根的小碼
  3. 在末尾添加首根的小碼作爲識別。

舉例説明:

  • 「织」字拆成纟Cj 口Ov 八Tu三根。分別對應了首根、次根、最末根。我們取三箇字根的大碼COT,再添上首根的小碼j作識別。輸入COTj即可出字。
  • 「微」字拆成彳Sr 山Iv 一Gu 几Ov 攵Pp五根。我們只取首根、次根、最末根,也就是彳Sr 山Iv 攵Pp的大碼,再添上首根的小碼r作識別。輸入SIPr即可出字。
  • 「认」字拆成讠人,只有兩根,所以我們取全部根,也就是讠Zy 人Uu的大碼,即ZU。此時,注意到不足三碼,故而補上最末根的小碼u,再添上首根的小碼y作識別。輸入ZUuy即可出字。

再次強調,首根爲副根時,只需要取3箇根

末尾添加首根的小碼,有時候新手會需要一段時間來適應。好在由於簡碼的存在,大多數的時候,我們都不需要輸入最後的識別碼就能出字。

4.3. 字根字

字根字,依次取其大小碼即可出字。比如:

  • 「木」字是字根字(主根),輸入大小碼Iv即可出字。
  • 「骨」字是字根字(副根),輸入大小碼Ng即可出字。

4.4. 空格鍵的使用

在很多輸入法軟件中,空格鍵(以下用_表示)用來上屏首選字。

根據以上的學習內容,我們發現:徐碼的編碼最長不超過4箇字母。由於這箇特性,我們在輸入完編碼後,不一定需要按空格鍵將字打上屏幕。

空格鍵只在以下情況需要使用:

  • 一箇字的編碼低於4位,需要按空格鍵上屏首選。比如「人」字,需要按Uu_上屏。
  • 一箇字的編碼等於4位,後面没有其他的字需要輸入,則需要按空格鍵上屏首選。

以下情況,不需要使用空格鍵:

  • 一箇字的編碼等於4位,且有後續字符等待輸入。我們不需要按空格鍵。只要直接輸入下一箇字的首碼,這箇字就會自動上屏。我們稱之爲「五碼頂屏」。例如:我們打「霁雨」二字,「霁」字的編碼是JYTy。輸入y後,我們直接輸入「雨」字的編碼Jy,則「霁」字會自動上屏。

5. 簡碼設置

學完了徐碼的單字編碼,我們發現,徐碼的單字碼長一般是2到4位之間。不少常用的字,碼長是4位,比如字頻第一的「的」字,編碼爲USUb

一種科學的輸入策略,應該使得常用字的碼長更低,從而加快輸入的速度。試想,如果輸入「的」字,每次都要按USUb四下按鍵,真是太浪費時間了。

形碼對此的優化方式,就是設置簡碼,也就是給部分漢字設置更短的編碼:比如,我們在輸入「的」時,只要按上一箇字母和空格鍵,就能實現輸入。

在徐碼中,簡碼的設置十分科學,使得每一箇字簡碼和全碼的編碼規則保持一致。以下進行介紹。

5.1. 一級簡碼字

一級簡碼字,又稱一簡字,指的是用一箇字母爲編碼實現輸入的漢字。徐碼中,有26箇高頻漢字設置爲一簡字,只要按下一箇字母,加上空格,即可上屏。

一簡字的編碼,就是該字全碼的第一箇字母。比如:

  • 「我」全碼爲PFFg,一級簡碼爲P。輸入P_即可實現上屏。
  • 「的」全碼爲USWb,一級簡碼爲U。輸入U_即可實現上屏。

從A到Z排列,一級簡碼字分別是以了发那要大一在事地是上同国中我多和得他的儿家道这为

在字根圖中,一簡字就是每箇字母方框的左上角的漢字。

在我們的日常交流中,一簡字大約佔據了25%的使用頻率。在徐碼中,只需要按兩箇按鍵,這有效提升了輸入的速度。

5.2. 二級簡碼字

二級簡碼字,又稱二簡字,指的是用兩箇字母爲編碼實現輸入的漢字。徐碼中,有676箇高頻漢字設置爲二簡字,只要按下两箇字母,加上空格,即可上屏。

一簡字的編碼,就是該字全碼的前两箇字母。比如:

  • 「起」全碼爲JDjz,二級簡碼爲JD。輸入JD_即可實現上屏。
  • 「可」全碼爲EOvd,二級簡碼爲EO。輸入EO_即可實現上屏。

點擊此處,查看二級簡碼矩陣。

5.3. 三級簡碼字

三級簡碼字,又稱三簡字,指的是用三箇字母爲編碼實現輸入的漢字,只要按下三箇字母,加上空格,即可上屏。

三簡字的編碼,就是該字全碼的前三箇字母。這裏不再舉例。

注意到,三簡字需要按四箇按鍵才能上屏,同輸入單字全碼按鍵數一樣,因此,三簡字的設置主要爲了以下目的:

  • 騰出四碼碼位,實現避重。
  • 首根爲副根的字,在末尾不用輸入首根的小碼。只有在部分時候需要輸入識別碼定字。這樣可以減輕記憶負擔,不需要返回去思考首根的小碼是什麼。
  • 減少單手連續擊鍵的可能性,減輕手指的負擔。

三級簡碼字,可在打字時進行熟悉,不需要特別去記憶。

6. 詞語編碼規則

除了設置簡碼,徐碼還將常用的詞語,也編成4箇字母的編碼。這樣可以降低每一箇字的平均碼長,提高打字速度。

徐碼的詞語編碼規則,分爲三種情況。

6.1. 兩字詞

兩字詞,取每箇字全碼的前兩碼即可。比如:

  • 「人生」:「人」的編碼爲Uu,「生」的編碼爲Ps。因此,「人生」的編碼爲UuPs
  • 「事情」:「事」的編碼爲IOBu,「情」的編碼爲UESv。因此,「事情」的編碼爲IOUE

6.2. 三字詞

三字詞,取前兩字的第一碼,和第三箇字的前兩碼即可。比如:

  • 「泡泡糖」:「泡」的編碼爲ZSDs,「糖」的編碼爲XWjm。因此,「泡泡糖」的編碼爲ZZXW
  • 「星期三」:「星」的編碼爲KPs,「期」的編碼爲HSvq,「三」的編碼爲Is。因此,「星期三」的編碼爲KHIs

6.3. 四字詞及以上

四字詞及以上,取前三字的第一碼,和最後一箇字的第一碼即可。比如:

  • 「狐假虎威」:「狐」的編碼爲VRgq,「假」的編碼爲TDDD,「虎」的編碼爲LQjh,「威」的編碼爲FGCw。因此,「狐假虎威」的編碼爲VTLF
  • 「中华人民共和国」:這是一箇七字詞,所以我們只看前三字和最後一字「中」、「华」、「人」、「国」。「中」的編碼爲OKu,「华」的編碼爲TVEu,「人」的編碼爲Uu,「国」的編碼爲NEWw。因此,「中华人民共和国」的編碼爲OTUN

6.4. 詞語輸入的優缺點

用詞語的方式進行輸入,優點在於降低了每箇字的平均碼長。試想「我们今天一起吃饭」這箇句子。

  • 如果打單字全碼的話,需要按PFFgTZm_UW_Bu_GFd_Gu_JDjzOPBi_QRDi_
  • 如果打單字簡碼的話,需要按P_TZm_Uwb_GF_G_JD_Op_QRd_
  • 如果打詞語全碼的話,需要按PFTZUWGFGuJDOPQR_

可以看到,詞語全碼有效降低了按鍵的次數。

但是,詞語輸入也有其缺點,最主要的缺點包括:

  • 如果詞庫太小,不是每箇詞語都在詞庫中。很多時候還是需要打單字。
  • 如果詞庫太大,則會出現大量的重碼,需要進行選擇,破壞了形碼輸入的流暢性。
  • 你輸入一箇詞語,卻發現它並不在詞庫中,就需要删除後重新輸入單字。讓人感覺不悅。
  • 人工分詞需要消耗額外的注意力。

因此,精簡詞庫,熟悉詞庫,打單字和打詞語相結合,是形碼高手們的修煉之路。

7. 進階教程

7.1. 口囗之辨

口(音kǒu),編碼爲Ov,是箇主根。囗(音wéi),編碼爲Nw,是箇副根。這兩箇根如何區分?

答案是,如果方框裏有完整的筆畫,用「囗」Nw。否則一律用「口」Ov。例如:

  • 「国」字中,有完整的筆畫,故而必須用「囗」Nw
  • 「中」字中,雖然「⼁」穿「口」而過,但並未被完全包含在「口」中。由於「口」中没有完整的字根,故而用「囗」Nw

這箇規則還會影響含「口」形的其他字根。比如「古」字中的「口」,也不能包含完整筆畫,否則應當拆成「十囗」。例如:

  • 「鄙」字左下方看似可以拆成「古口」,但因爲「古」中的方框包含了完整筆畫,故而必須拆成「十囗口」。

7.2. 勹𠂊之辨

「旬」的外框「勹」Su,同「敖」左下的「𠂊」Qu都是撇加橫折鉤,但是一箇在S上,一箇在Q上。如何分辨呢?

答案是,如果它包圍了一箇完整的筆畫,用「勹」Su。否則一律用「𠂊」Qu。例如:

  • 「勺」字中,有完整的筆畫,故而必須用「勹」Su
  • 「㡬」字中,没有完整的筆畫,故而必須用「𠂊」Qu

8. 徐碼存疑和商榷

以下是關於徐碼中部分規則的存疑和商榷。

8.1. 不變形根的使用

關於徐碼的「不變形根優先」原則,以下字的拆分存疑:

  • 妻:此字官方碼表拆作「十彐女」。我提議拆作「{奉下}コ女」。原因是,根据新徐規則,出頭的「彐」是變形根,故而優先取不變形的「{奉下}コ女」。
  • 爰:此字官方碼表拆作「爫干又」。我提議拆作「爫二夂」。原因是,根据新徐規則,傾斜的「干」是变形根,故而優先取不變形的「爫二夂」。

8.2. 𡗗的拆分問題

「𡗗」部首在官方碼表中拆作「一夫」,這違反了徐碼的拆分規則。我提議拆作「三人」。原因是,两字同根數、同不變形、同不散、同不連、同交、同不斷,同完全符合筆順。根据取大原則,應拆作「三人」。

8.3. 「麥」的拆分問題

徐碼中,「麥」字拆爲「來IlIk」。同樣應用到所有以「麥」爲部首的漢字。但其實「麥」應該拆成「來IlVu」。

8.4. 「日」「曰」字根的选取原则

當前的徐碼對方「日曰」的區分,是基於形狀的。也就是説:凡是長大於高的都爲「曰」,凡是長短於高的都爲「日」。但這箇方法會跟隨着字體的不同而不同,有時候不合字源,也不統一。例如:

  • 「書」字源于「聿者」。徐码中「書」下为「曰」,但「者」下为「日」,取码不统一。
  • 「曹」古字为「東東口」。在徐码中,「曹」下为「日」,不符合字源。

另外一種區分方法是基于字源。也就是説:凡是在古文中作「口」形,之后隶變爲「曰」形或「甘」形的字,在徐碼中作「曰」。但這箇方法對方一般的使用者難度太大,且分析字源會有疏漏之處,不應用於輸入法。

我提議的是第三種方法,也就是不做區分。原因如下:

在漢字中,存在「日曰」對立的字形,只有三組,分别为:「日曰」、「汨汩」、「曶㫚」。在其他的情况下,不存在對立,也就不存在混淆問題。因此,取「日」还是取「曰」,可以採取更簡單的方法。卽:除了上述三組對立情况外,全部取「日」Kv根。

換句話説,「曰」Ku根只需要在「曰」「汩」「㫚」三處使用卽可。這樣一來,可以顯著降低使用者的記憶和學習負擔。