🦐 Yabomish MANUAL
第 07 章

⚡ 快捷碼與擴充表

快捷碼與擴充表

Yabomish 提供兩套自訂機制——快捷碼與擴充表,讓你把常用的文字片段、指令、簽名檔綁定到短碼上,打幾個字母就能送出整段內容。


7.1 快捷碼系統

什麼是快捷碼?

嘸蝦米字表中,並非所有 2~4 碼的組合都有對應的字。這些「空碼」可以拿來綁定你自訂的文字,稱為快捷碼。

打碼 → 空白鍵送出,就像打一般的字一樣,只是送出的是你預先設定的整段內容。

適用情境

用途範例碼送出內容
AI agent 指令agpt請用繁體中文回答,並附上參考來源
Prompt templateaprm請扮演資深 Swift 工程師,逐步分析以下程式碼:
常用片語athy感謝您的來信,我會盡快回覆。
簽名檔asig—\n王大明\n大明科技 技術長\nming@example.com
程式碼片段alogprint(“DEBUG: \(#function) line \(#line)”)

提示:內容中可使用 \n 表示換行,送出時會自動轉為實際的換行字元。

管理方式

快捷碼在設定程式(YabomishPrefs.app)的「快捷碼」分頁中管理:

  1. 新增:輸入 2~4 碼的編碼與對應內容,按下「加入」。系統會自動檢查該碼是否已被字表佔用,若衝突會提示你換一個碼。
  2. 搜尋與刪除:列表上方有搜尋欄,可快速找到並刪除不需要的快捷碼。
  3. 匯入匯出:支援 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),方便管理。