雙拼方案編輯器
本文的原始 markdown 可以點此存取,以便使用者轉交給各種 AI 服務代為閱讀講解。
本文對應至少唯音輸入法 4.8.8 版。文中所述之編輯器位於「偏好設定 → 鍵盤設定」頁面的「雙拼方案」區塊底端;SwiftUI 偏好設定介面需 macOS 14 以上,舊版 AppKit 介面的同名區塊外觀不同、功能一致。
雙拼與本編輯器
「雙拼」是將每個漢字音節拆成「聲母 + 尾綴」兩段、各敲一鍵的拼音打法(兩鍵一音節)。同一音節在不同方案當中所對應的按鍵並不一樣,故各家雙拼互不相通:微軟雙拼、自然碼、四通、拼音加加……各是一套「音節 → 按鍵」的對照表。
唯音內建的雙拼方案只有兩套:
- 微軟雙拼(預設);
- GB/T 34947-2017(中國國家標準之雙拼方案)。
其餘已知方案(智能 ABC、拼音加加、搜狗雙拼、紫光華宇、自然雙拼、小鶴雙拼、四通雙拼等)以 JSON 方案檔的形式散布、由使用者自行匯入。方案編輯器就是「自備方案」的編輯工具:既能從既有方案出發改鍵位,也能從空白表開始逐一指定。
若您只是想用某一套現成的雙拼方案,請直接匯入該方案檔即可,無需動用編輯器。
匯入既有的方案檔
於「雙拼方案」區塊按「匯入雙拼方案…」,選取一個 JSON 方案檔(上限 1 MiB):
- 匯入之方案會整份取代目前的「自訂雙拼」方案;「雙拼方案」下拉選單亦隨之切換為該方案(自訂項)。
- 匯入成功後會自動開啟「啟用雙拼」。
- 匯入之檔案會先經引擎校驗;若有錯誤,匯入會被拒絕、狀態列列出原因,原有的自訂方案不受影響。
註:方案檔一律以 UTF-8 JSON 撰寫;檔名不拘,但引擎只認檔案內容。多份方案檔之間請以各自的「方案 ID」區分。
方案編輯器各欄位

| 欄位 | 說明 |
|---|---|
| 名稱 | 方案之顯示名稱(上限 32 個字元)。存檔後會出現在「雙拼方案」下拉選單的自訂項上。 |
| 方案 ID | 方案之反向域名形唯一 ID(例如 dualPin.User.myScheme)。預設依「名稱」自動生成(小寫、非英數字元改成 -),亦可手動改寫;手動改寫後即不再自動連動。方案 ID 不得與現存方案相衝、亦必須是反向域名形,否則校驗報告會報錯。 |
| 範本 | (無) / 微軟雙拼 / GB/T 34947-2017 / 目前自訂方案。選定範本會整份覆寫當前的兩張表與零聲母政策(覆寫前會先確認,取消則退回原選項)。 |
| 零聲母 | 沒有聲母的音節(阿、鵝、歐……)之打法。三種政策:固定式零聲母(搭配下方的「零聲母鍵」,例如 o)、母音第一個字元的按鍵、母音第一個字元的按鍵(2 個字元的母音是完整拼音)。後兩者見於微軟雙拼一類方案。 |
| 鍵位預覽 | 26 個字母鍵與 ; 的鍵位格。每格左上角小字為鍵名,其下逐行列出該鍵所代表的聲母(半粗體)與尾綴。 |
| 聲母/尾綴列 | 「音節」下拉選一個音節、「按鍵」下拉選一個鍵,指定即時生效;已被他處佔用的鍵會標示「已由 X 佔用」(同一鍵仍可同時兼作一聲母與一尾綴,此為常態)。 |
欲另存內建方案為自訂方案時,請把「範本」選為該內建方案:兩張表會整份拷貝過來,名稱留空供您填寫,方案 ID 亦自動重發為 dualPin.User.<名稱>——內建方案本體不會被改寫。
鍵位格上的底色為提醒,不影響存檔與否:
- 該鍵的碼未被任何音節用到(引擎之 W5);
- 該鍵屬於系統保留鍵(引擎之 W3;唯音的保留鍵為
`、~、¥、\)。
有些方案的
ing落在;鍵(搜狗雙拼、紫光華宇、四通雙拼等),故其鍵位表共有 27 鍵;行動裝置之鍵盤未必提供;,這類方案在手機上請改用落在字母鍵的方案(例如小鶴雙拼、自然雙拼)。
校驗報告
編輯器每次重繪都會即時校驗整份方案(以唯音引擎所收錄的 426 條拼音詞幹為基準),並在「鍵位預覽」下方顯示一行摘要:
- 「校驗通過,可存檔。」——此時「存檔」與「匯出方案檔…」皆可用。
- 「校驗未通過:N 項錯誤。」——此時兩者停用;請修正後再存檔。
- 「可組碼之音節數:425 / 426(426 條詞幹,其中 eh 屬 DIPE、不列於此)」——說明引擎能為多少條詞幹取到碼。
按「進階」可展開逐條清單:E 開頭者為錯誤(阻擋存檔)、W 開頭者為提醒(不阻擋)。常見者:
| 代碼 | 意義 | 處理 |
|---|---|---|
| E1 / E2 | 某音節之碼用到了鍵位表外的鍵,或碼的長度不對。 | 重新指定該音節之按鍵。 |
| E3 | 某詞幹取不到碼、且未列於 acknowledgedUnreachable。 | 補齊該音節之鍵位。 |
| E5 | 同一組碼同時對應兩個音節(例如別名與主碼相撞)。 | 改掉其中一個。 |
| E7 | 名稱(rawTitle)為空。 | 於「名稱」欄填寫。 |
| E9 | 方案 ID 為空、非反向域名形,或與現存方案相衝。 | 改用如 dualPin.User.myScheme 之 ID。 |
| W2 | 重碼:一組碼同時對應多個音節(lo 與 luo 一類同鍵之必然)。 | 通常無需處理;出現時請確認是否為該方案之固有設計。 |
| W5 | 兩表所給之鍵未被任何碼用到。 | 可刪去該鍵,或改用它。 |
| W8 | 缺少英文(en)標題。 | 若非散布之用,可忽略。 |
唯音引擎視
eh(孤立ㄝ)為「雙拼不可表達之拼音表示式」(DIPE):既不列為錯誤、亦不得列入acknowledgedUnreachable。這是因為漢語拼音方案之韻母表不含 ê、以通用鍵盤輸入時另作兩鍵EA。任何雙拼方案都無法把eh排進兩鍵的格子內,故 426 條詞幹中永遠有一條無碼——這不是方案的缺陷。
存檔匯出與還原
| 動作 | 作用 |
|---|---|
| 存檔 | 於校驗通過時,把整份方案寫入唯音之偏好設定(dualpinSchemaJSON)並切換為「自訂雙拼」、同時開啟「啟用雙拼」。 |
| 匯出方案檔… | 把當前草稿序列化為 JSON 檔案寫出(建議檔名為 <名稱>.dualpin.json);內容與存檔所用者相同,可直接散布給他人匯入。 |
| 還原 | 丟棄尚未存檔的編輯,回復到偏好設定當中的現行方案。 |
存檔與匯出之成功/失敗皆顯示於編輯器底端的狀態列(例如「已存檔雙拼方案:…」「已匯出方案檔:…」)。
匯出之 JSON 之首行為
$schema(指向官網所附之 JSON Schema),其後依序為rawID、rawTitle、localizedTitle、initials、finals、nullOnset、keyInterception、autochopPolicy,以及非空時之overrides、aliases、acknowledgedUnreachable。以縮排 2 空格、鍵序固定之形式輸出,以便版本比對。
舊版系統之差異
macOS 10.12 與更早版本無法使用系統的檔案面板(ComDlg32 不可用;強行呼叫會導致系統異常),故唯音在該等系統上一律不開面板:
- 「匯入雙拼方案…」改為彈出說明視窗、請使用者改用較新之系統。
- 「匯出方案檔…」改為把方案檔傾印至
~/Library/Application Support/fileDump/,並於狀態列顯示實際路徑(該目錄會自動建立)。
macOS 10.13 至 10.13.1 可用系統檔案面板,但 allowedContentTypes 需 macOS 11 以上方能使用,唯音於該等系統改走 allowedFileTypes 之等價設定——使用者無需理會。
方案檔何處尋
- 唯音官網倉庫之方案定義檔(微軟雙拼與 GB/T 34947-2017 以外之已知方案、以及可直接用於驗證之 JSON Schema):https://github.com/vChewing/vChewing.github.io/tree/main/valueadd/dualpin-schema-files
- 方案檔之格式標準(各欄位之意義、編組規則、校驗代碼一覽):見《唯音輸入法:雙拼方案定義檔格式標準》。
- 亦可自其他輸入法之雙拼方案換算:只要備齊「聲母表」「尾綴表」與零聲母政策,即可在編輯器內逐一指定,或直接手寫 JSON。