工欲善其事,必先利其器:準備更新哈哈倉頡

分享和討論倉頡輸入法相關的資訊和内容
版面规则
公正客觀講理,杜絶廢話連篇
头像
ejsoon
一枝独秀
一枝独秀
帖子: 5727
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 179 次
被圈友点赞: 207 次
联系:

Re: 工欲善其事,必先利其器:準備更新哈哈倉頡

帖子 ejsoon »

現在按這個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`,都能順利選取對應的候選字。
https://ejsoon.vip/
弈趣極光:享受思維樂趣
头像
ejsoon
一枝独秀
一枝独秀
帖子: 5727
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 179 次
被圈友点赞: 207 次
联系:

Re: 工欲善其事,必先利其器:準備更新哈哈倉頡

帖子 ejsoon »

代码: 全选

在.lime格式的導出中,文件頭更改為:

@format@|lime-text-v2
@version@|日期加時間
@cname@|哈哈倉頡
@selkey@|123456789
@endkey@|abcdefghijklmnopqrstuvwxyz
@spacestyle@|0
%chardef begin
code|word|score|basescore
aa|測|0|123
ab|試|0|456
%chardef end


碼表內容寫在
%chardef begin
至
%chardef end
之中,其中第四欄使用之前的倒序數字。

如遇以下符號則轉碼:

\\ = literal backslash
\| = literal pipe when `|` is the delimiter
\@ = literal at-sign
\% = literal percent

只需給出要修改的地方,不需要注釋,不要有空行。
https://ejsoon.vip/
弈趣極光:享受思維樂趣
头像
ejsoon
一枝独秀
一枝独秀
帖子: 5727
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 179 次
被圈友点赞: 207 次
联系:

Re: 工欲善其事,必先利其器:準備更新哈哈倉頡

帖子 ejsoon »

gemini thinking:

代码: 全选

const limeFilename = `lime_${fileVersion}.txt`;
const d = new Date();
const dateTimeStr = d.getFullYear() + String(d.getMonth() + 1).padStart(2, '0') + String(d.getDate()).padStart(2, '0') + String(d.getHours()).padStart(2, '0') + String(d.getMinutes()).padStart(2, '0') + String(d.getSeconds()).padStart(2, '0');
const escapeLime = (str) => str.replace(/\\/g, '\\\\').replace(/\|/g, '\\|').replace(/@/g, '\\@').replace(/%/g, '\\%');
const limeHeader = `@format@|lime-text-v2\n@version@|${dateTimeStr}\n@cname@|哈哈倉頡\n@selkey@|123456789\n@endkey@|abcdefghijklmnopqrstuvwxyz\n@spacestyle@|0\n%chardef begin\ncode|word|score|basescore`;
const limeBody = tableLines.map((line, index) => {
const [code, char] = line.split('\t');
return `${escapeLime(code)}|${escapeLime(char)}|0|${totalLines - index}`;
}).join('\n');
const limeContent = `${limeHeader}\n${limeBody}\n%chardef end`;
createDownloadLink(limeFilename, limeContent);
https://ejsoon.vip/
弈趣極光:享受思維樂趣
头像
ejsoon
一枝独秀
一枝独秀
帖子: 5727
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 179 次
被圈友点赞: 207 次
联系:

Re: 工欲善其事,必先利其器:準備更新哈哈倉頡

帖子 ejsoon »

haha_20260523_162540.lime2

試試看這個行不行。
附件
haha_20260523_162540.lime2.7z
(161.71 KiB) 已下载 5 次
https://ejsoon.vip/
弈趣極光:享受思維樂趣
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 2 访客