全一輸入法是 macOS 中英連續輸入法,讓繁體中文注音與英文單字在同一段文字中連續輸入。從組字、選字到中間插入與修改,都可以在送出文字前完成。
- 擴充詞庫:匯入教育部/萌典完整詞讀音與 Wikidata 專有名詞,保留英文名稱大小寫;以較低權重補充候選。詳見 開放詞庫說明 及 當代詞彙來源。
- 中英混打:支援標準注音、英文單字與未完成英文前綴,減少切換輸入法的次數。
- 音節順序容錯:未完成音節的原順序無效、重排後符合詞庫讀音時,自動還原聲母、介音與韻母順序,例如「ㄐㄠㄧ」→「ㄐㄧㄠ」;保留聲調,不跨越合法音節。
- 聲調篩選:明確輸入二、三、四聲或輕聲後,候選依完整讀音查詢,不混入其他聲調或近音字。
- 上下文選字:以傳統詞庫與組字規則為基礎,搭配可載入的 NN 模型輔助候選排序。
- 組字內編輯:可移動游標、插入文字、向前或向後刪除,再繼續輸入。
- 保留選字結果:自動推測、候選預覽與人工確認分開處理;插入或刪除時同步調整後方已確認詞彙的位置。
- 局部中英重判:可在游標附近選擇中文或英文替代候選,只替換對應詞段。
- 候選整理:目前正文置頂,合併不同來源的候選並去重,保留同字但替換範圍不同的選項。
- 個人詞頻:依明確選字累積偏好,自動提交不計為選字偏好。
- 可調整的候選焦點:提供靠左、靠右與左右皆偵測三種模式。
- 偏好設定:可調整停頓辨識、輸入語言及候選焦點,並查看版本資訊。
停頓辨識設定控制停止輸入後的中英合併辨識等待時間。一般詞頻只記錄實際選取候選的語言、讀音與文字;完整組字及選字診斷紀錄預設關閉,須另行明確啟用。
適用於 macOS 13 或更新版本。請從 GitHub Releases 選擇符合 Mac 架構的 DMG:arm64 為 Apple 晶片,x86_64 為 Intel;實際提供的版本以發布頁附件為準。
- 開啟下載的 DMG。
- 雙擊帶有全一輸入法圖示的 「安裝全一輸入法」,程式會自動安裝並啟動輸入法。
- 首次使用時,按「開啟鍵盤設定」,在 macOS 的輸入來源中加入 「全一輸入法」。
- 從系統輸入法選單切換至全一輸入法,即可開始輸入。
安裝位置為 ~/Library/Input Methods/全一輸入法.app,只安裝到目前使用者,不需要管理員密碼。若輸入來源清單尚未出現全一輸入法,請登出後重新登入。
可在偏好設定的「關於」頁按「版本更新」,檢查 GitHub 最新正式 Release。若有新版,確認版本資訊並按「下載並安裝」後,程式會下載符合目前架構的 DMG,驗證後自動啟動安裝程式;選擇「稍後」不會下載或安裝。沒有新版、網路失敗或缺少相符安裝檔時,介面會顯示狀態。
也可手動執行新版 DMG 內的同一個安裝程式。安裝程式會先備份舊版,完成後重新載入輸入法;安裝失敗時嘗試還原。個人詞頻與偏好設定會保留。
以下按鍵作用於尚未送出的組字內容。
| 按鍵 | 功能 |
|---|---|
| ←/→ | 在組字內移動游標;候選清單開啟時先確認目前候選 |
| Home/End | 移到整段組字開頭/結尾 |
| ↑/↓ | 開啟候選清單,再按可切換候選 |
| Backspace | 刪除游標左側 |
| Delete | 刪除游標右側 |
| Space | 完成目前音節;沒有待完成音節時,確認候選並前進,抵達末尾時送出 |
| Enter | 候選清單開啟時先確認選字;一般組字狀態下送出整段文字 |
| Escape | 回復前一步組字操作 |
候選清單開啟時,←/→ 或 Home/End 會先確認目前候選,再移動游標。只想取消剛才的候選切換時,使用 Escape 回復前一步;它不是清空整段文字的按鍵。
Home/End 遇到未完成的注音時,會先在原位置完成該音節,再移動游標,不直接送出整段文字。刪除操作以鍵盤送出的標準 Delete/Backspace 鍵碼區分,不另外提供刪除組合鍵。
未完成注音時,Backspace 逐個刪除已輸入的注音符號;Delete 保留未完成音節,只刪除右側已完成的音節,右側沒有內容時不變動。
Shift+數字列依鍵盤實際產生的符號輸入對應全形字元。標準美式鍵盤的 Shift+1〜0 依序為 !@#$%^&*();符號仍可在組字中移動、刪除或用 ↑/↓ 改選,不會把數字鍵誤解為注音或聲調。
標點保留在尚未送出的組字中,可把候選焦點移到符號,再按 ↑/↓ 選擇同類變體,例如「,/、/,」、「。/./.」及不同形式的括號。Escape 可回復前一步選擇,Enter 依一般組字流程確認或送出。
Shift 搭配數字列或標點鍵,可輸入對應全形符號或中文標點;例如 Shift+, 輸入「,」、Shift+. 輸入「。」、Shift+/ 輸入「?」。尚未送出的符號可用 ↑/↓ 改選同類變體。
中文候選清單尾端提供原注音選項,例如「ㄐㄧㄠˋ」,可直接選取並送出注音文字;明確聲調會保留。若焦點是完整詞,該選項會輸出整個詞的注音。
短英文與有效注音鍵序重疊時,程式會保留中文辨識路徑,英文仍可從候選選取。這類輸入不保證只靠按鍵就能判定語言;需要更正時,可把游標移到該詞附近,再用 ↑/↓ 開啟候選。
跨語言候選依游標附近的完整詞段提供替代結果。切換候選時會預覽文字及替換範圍,確認後才套用新的詞段切分。自動中英重判會保留前後內容,遇到已人工確認的詞段時保留原組字。此功能目前以既有詞段邊界為範圍,不提供任意英文單字內部的拆分。
候選清單把目前正文放在第一項,再依各來源的既有名次交錯排列;同名次、同起點時優先完整替換範圍。相同文字若對應不同位置或替換方式,仍會各自保留。個人詞頻會影響排序,選字時應以顯示的文字與範圍為準。
人工確認只保護實際選定的詞段。例如只選定「已」,後面的同音詞仍可能需要另選「佈署」。後續在其他位置編輯會同步搬移已確認詞段;若直接編輯該詞段,則重新解碼。
詞庫隨 app 安裝,輸入時不需要連線查詢。既有詞庫之外,本次擴充加入 85,922 筆中文詞目/讀音配對與 10,669 筆英文名稱/別名對應;配對數包含同詞不同讀音與別名,不等同獨立詞目數。
中文採用教育部/萌典提供的完整詞讀音;英文取自 Wikidata 的軟體、品牌、公司、程式語言等分類,保留原有大小寫。英文別名與縮寫可提供對應正式名稱的候選。補充詞使用較低權重,既有詞條及權重保留,實際顯示順序仍由候選排序決定。
中文專名若缺少可靠的完整詞讀音,不以單字拼音猜測補入。重編辭典也包含歷史詞彙;詞庫擴充不代表每個名稱都已收錄或必定成為首選。來源、篩選方式及授權詳見 開放詞庫說明。
目前正式支援 「傳統優先+AI 輔助」,新安裝與不支援的舊設定均統一使用此模式。其餘模式在設定中列為「未支援」,顯示灰色且不可選取。
| 狀態 | 模式 |
|---|---|
| 已支援 | 傳統優先+AI 輔助 |
| 未支援 | AI 優先+傳統輔助、AI 先決、傳統模式 |
NN 用於輔助既有候選排序。未載入模型或模型不可用時,程式自動使用規則式排序,仍可正常輸入;這項回退行為不代表另開放「傳統模式」選項。模型成品與載入方式請參考 模型說明。
| 模式 | 行為 |
|---|---|
| 靠左 | 以游標左側字詞作為候選焦點 |
| 靠右 | 以游標右側字詞作為候選焦點 |
| 左右皆偵測 (準確率稍降) | 交錯提供兩側候選,選取後替換該候選對應的範圍 |
在組字開頭或結尾,使用有效的一側。雙側模式提供較多選字範圍,但也增加候選歧義。
目前提供繁體中文注音與英文混打。日文選項暫停開放,固定為「不使用」。短句、缺少上下文及同音詞仍可能需要手動選字;候選視窗與不同 macOS 應用程式的相容性持續改善中。
問題與建議可透過 GitHub Issues 回報。請附上 macOS/輸入法版本、使用的應用程式、原始按鍵、游標位置,以及預期與實際文字,方便重現。
需要 macOS 與 Xcode Command Line Tools。在專案根目錄執行:
zsh build.command --release
產物位於 dist/全一輸入法.app,不會自動覆蓋本機輸入法。若要建置並安裝至本機:
zsh build.command --release --sign --deploy
發布者本機另有 pack.command,含個人簽章與公證設定,不隨 GitHub 原始碼提供。以下指令僅適用於已備妥該本機工具的環境。
建立供發布的一鍵安裝 DMG:
zsh pack.command
封裝腳本預設重新建置 release,依序簽署並公證輸入法、安裝程式及 DMG,產出 DMG 與 SHA-256 校驗檔。需要 Developer ID Application 憑證及可用的 notarytool 鑰匙圈設定。
UNIFYIME_NOTARY_PROFILE="你的公證設定名稱" zsh pack.command可用 --arch=arm64 或 --arch=x86_64 指定架構,--no-build 使用 dist 中既有的 app。其餘參數請執行 zsh pack.command --help。設定 UNIFYIME_SKIP_NOTARIZE=1 只會產生檔名標示 LOCAL-ONLY 的本機用途版本。
| 路徑 | 內容 |
|---|---|
src/unifyIME/Sources/ |
macOS 整合、組字狀態、候選排序與設定介面 |
src/phoneticIME/ |
中文注音引擎 |
src/englishIME/ |
英文引擎與詞庫 |
src/unifyIME/Resources/ |
字庫、設定介面與 app 資源 |
scripts/installer/ |
一鍵安裝程式 |
models/ |
NN 模型成品與載入說明 |
lexicons/ |
匯入詞條來源、版本與授權 |
scripts/import_lexicons.py |
開放詞庫下載、格式轉換與去重 |
新增的教育部/萌典詞目與讀音、Wikidata 名稱各自沿用來源授權。逐詞來源、版本、處理方式與授權標示請參考 開放詞庫說明,不併入程式碼授權。
本專案的 common_map.tsv 與 phrase_map.tsv 除上述匯入資料外,部分基礎字詞取自並整理自 小麥注音(McBopomofo) 公開字庫;另有詞條由本專案依公開網路上觀察到的近期流行用詞與新生代名詞自行整理補充,不直接複製文章段落。
取自 McBopomofo 的資料依其 MIT License 使用與再散布,原始版權聲明為:Copyright (c) 2011-2026 Mengjuei Hsieh et al.
上述字庫資料的授權與 UnifyIME 自身程式碼授權分開處理;UnifyIME 與 McBopomofo 沒有官方隸屬或背書關係。
本專案在輸入法架構、注音組字、游標行為與中英混打設計上,參考過以下的公開成果與使用經驗:
感謝兩個專案長期累積的設計思考、實作經驗與文件,讓 UnifyIME 的開發少走了許多彎路,也更快釐清 macOS 輸入法在組字、候選與游標互動上的實際問題。
版本以建置產生的 1.YY.MMDD build HHmm 為準(台北時間)。程式介面、安裝程式與 DMG 共用 app 內的 UnifyIMEBuildVersion;封裝不另產生版本。GitHub 標籤使用 v1.YY.MMDD-build-HHmm,DMG 使用 UnifyIME-1.YY.MMDD-build-HHmm-架構.dmg。--no-build 會沿用既有 app 的 BUILD 版號;舊產物若未包含版號欄位,需先重新建置。
每次執行 BUILD 或 PACK,都會在產生新版前清空 dist/,包含舊 app、DMG、校驗檔及隱藏檔。pack.command --no-build 會先將既有 app 暫存至 dist/ 外,再清空目錄並保留本次 app,避免刪除封裝來源。需要保存的歷史版本請先移至其他目錄。