快捷碼與擴充表
Yabomish 提供兩套自訂機制——快捷碼與擴充表,讓你把常用的文字片段、指令、簽名檔綁定到短碼上,打幾個字母就能送出整段內容。
7.1 快捷碼系統
什麼是快捷碼?
嘸蝦米字表中,並非所有 2~4 碼的組合都有對應的字。這些「空碼」可以拿來綁定你自訂的文字,稱為快捷碼。
打碼 → 空白鍵送出,就像打一般的字一樣,只是送出的是你預先設定的整段內容。
適用情境
| 用途 | 範例碼 | 送出內容 |
|---|---|---|
| AI agent 指令 | agpt | 請用繁體中文回答,並附上參考來源 |
| Prompt template | aprm | 請扮演資深 Swift 工程師,逐步分析以下程式碼: |
| 常用片語 | athy | 感謝您的來信,我會盡快回覆。 |
| 簽名檔 | asig | —\n王大明\n大明科技 技術長\nming@example.com |
| 程式碼片段 | alog | print(“DEBUG: \(#function) line \(#line)”) |
提示:內容中可使用
\n表示換行,送出時會自動轉為實際的換行字元。
管理方式
快捷碼在設定程式(YabomishPrefs.app)的「快捷碼」分頁中管理:
- 新增:輸入 2~4 碼的編碼與對應內容,按下「加入」。系統會自動檢查該碼是否已被字表佔用,若衝突會提示你換一個碼。
- 搜尋與刪除:列表上方有搜尋欄,可快速找到並刪除不需要的快捷碼。
- 匯入匯出:支援 tab-separated 的
.txt檔案,方便備份或與他人分享。匯入時會自動驗證每筆編碼的長度(2–4 碼)並檢查是否與字表衝突,不合法的碼會被略過,匯入完成後顯示結果摘要。
匯入匯出的檔案格式為每行一筆,編碼與內容之間以 Tab 分隔:
agpt 請用繁體中文回答,並附上參考來源
asig —\n王大明\n大明科技 技術長\nming@example.com
alog print("DEBUG: \(#function) line \(#line)")
設定程式底部會顯示目前 4 碼空碼的剩餘數量,讓你知道還有多少碼可以使用。
7.2 擴充表系統
快捷碼的底層其實就是擴充表的一部分。Yabomish 的擴充表系統讓你用純文字檔擴充輸入法的內容。
檔案位置
~/Library/Application Support/Yabomish/tables/*.txt
此資料夾下的所有 .txt 檔案都會被載入。安裝時預設包含 Emoji 聯想表。
檔案格式
每個擴充表都是 tab-separated 的純文字檔,一行一筆:
編碼<Tab>內容
例如:
agpt 請用繁體中文回答,並附上參考來源
asig —\n王大明\n大明科技 技術長
xhrt ❤️
xstr ⭐
快捷碼與擴充表的關係
透過設定程式管理的快捷碼,實際上儲存在:
~/Library/Application Support/Yabomish/tables/user_shortcuts.txt
你也可以直接用文字編輯器修改這個檔案,效果完全相同。
即時重載
修改擴充表檔案後,不需要重新啟動輸入法。只要在輸入狀態下打:
,,RL + 空白鍵
即可即時重載所有擴充表,修改立刻生效。
7.3 多台 Mac 共用資料(進階)
設定程式中的「同步資料夾」UI 已移除;如需在多台 Mac 之間共用資料,進階使用者可直接以 defaults write 設定 syncFolder 偏好(指向 iCloud Drive 等同步目錄),同步範圍為:
| 項目 | 說明 |
|---|---|
freq.json(字頻快照) | 你的選字習慣與頻率統計 |
tables/ 擴充表 | 包含快捷碼在內的所有擴充表檔案 |
一般使用者可忽略本節——單機使用不需要任何設定。字表檔案(
liu.cin/liu.bin)不在同步範圍內,每台電腦需各自匯入。
7.4 自訂指令(commands.json)
除了打字展開,Yabomish 還支援「觸發即執行」的指令型自訂:打 ,, 加短碼再按空白,可以展開文字、執行 shell、開 app,或詢問本機 AI agent。
設定檔位置
~/Library/Application Support/Yabomish/commands.json
macOS、iOS 共用同一份檔案格式(檔案格式相同,可手動複製共用)。iOS 鍵盤只執行 text 型,其餘型別在 macOS 上生效。
四種型別
{
"auau": { "type": "text", "text": "sudo apt update && sudo apt upgrade" },
"ss": { "type": "shell", "run": "screencapture -x ~/Desktop/shot-$(date +%s).png" },
"saf": { "type": "open", "app": "Safari" },
"ask": { "type": "hermes", "send": "幫我總結這篇", "url": "http://127.0.0.1:8765/ask" }
}
| 型別 | 行為 | 平台 |
|---|---|---|
text | 展開成文字直接送出 | macOS / iOS |
shell | 非同步執行 shell 指令(5 秒逾時) | 僅 macOS |
open | 開啟或切換到指定 app | 僅 macOS |
hermes | 把 send 字串 POST 到本機 agent,回覆插入游標處 | macOS(輸入法)/iOS(容器 App 內) |
輸入 ,,auau 空白即觸發;,,RL 重載字表時會一併重載此檔。內建指令優先於自訂指令。
Hermes 型別與安全邊界
hermes 是與本機 AI agent(如 Hermes)的橋接:送出你預先寫好的 send 字串,把回覆直接打到游標位置。等同把 , 查詢」變成一個鍵。
安全設計:
- 僅允許本機位址——
url只接受127.0.0.1、localhost、::1,scheme 限http。網域、區網 IP、HTTPS 一律拒絕,防止設定檔被竄改後外傳資料。 - 只送出
send字串本身——不送鍵擊紀錄、不送輸入內容、無任何背景流量。 - 回覆支援純文字或
{"text"|"reply"|"response"|"content": "..."}JSON 格式(60 秒逾時)。
安全提醒
shell 型別具備任意程式碼執行能力,hermes 型別會發出網路請求(僅限本機)。請勿載入來源不明的 commands.json,只使用自己或信任者提供的設定檔。
實用技巧
- 命名慣例:建議快捷碼以特定前綴開頭(如
a),避免與日常打字衝突。 - 多行內容:善用
\n換行,可以把整段簽名檔或模板塞進一個快捷碼。 - 團隊共享:把擴充表匯出後分享給同事,大家就能用同一套快捷碼。
- 分類管理:你可以在
tables/下建立多個.txt檔案,依用途分類(如work.txt、emoji.txt),方便管理。