Re: 工欲善其事,必先利其器:準備更新哈哈倉頡
发表于 : 2026年 5月 23日 21:24
現在按這個rime配置,我實現了用;'選二三重,但是我如果同時也想用數字鍵2和3選重,要如何改?
代码: 全选
在 Rime (鼠鬚管/小狼毫) 配置中,`alternative_select_keys` 只能為每個候選位置指定單一按鍵。如果您希望**同時**支援 `;`、`'` 和數字鍵 `2`、`3` 來選取第二、三重,最標準且穩定的做法是利用 **`key_binder`(按鍵綁定)** 功能。
請按照以下三個步驟修改您的 `haha.schema.yaml` 檔案:
### 1. 在 `engine/processors` 中啟用 `key_binder`
原本的配置中缺少了按鍵編譯器,需要將 `- key_binder` 加進去(建議放在靠前的位置,以便優先攔截按鍵):
```yaml
engine:
processors:
- ascii_composer
- key_binder # 新增這一行
- speller
- selector
- punctuator
- express_editor
```
---
### 2. 修改 `menu` 區塊
將原本的 `alternative_select_keys` 改回標準的數字選鍵 `select_keys`。這樣一來,選單預設就會支援 `2` 和 `3` 鍵,且候選字標籤會顯示為數字:
```yaml
menu:
page_size: 9
select_keys: "123456789" # 改為標準數字選鍵
```
---
### 3. 在檔案末尾添加 `key_binder` 設定
新增以下區塊。這段程式碼的意思是:當畫面上**有候選字選單時(`when: has_menu`)**,按下分號 `;` 會自動映射為數字 `2`,按下單引號 `'` 會自動映射為數字 `3`;而當沒有候選選單時,它們依然會維持原本的標點符號功能。
```yaml
key_binder:
bindings:
- { accept: semicolon, send: 2, when: has_menu }
- { accept: apostrophe, send: 3, when: has_menu }
```
---
> **提示:** 修改完成並儲存檔案後,切換到該輸入法並點擊 Rime 的 **「重新部署」(Deploy)**,新設定就會立即生效。此時不論您按 `;`、`'` 還是數字鍵 `2`、`3`,都能順利選取對應的候選字。