Skip to content

Conversation

lotem
Copy link

@lotem lotem commented Sep 25, 2025

须知

RIME 獨門絕活有三。
曰自定義輸入方案。
曰拼寫運算規則。
曰宮保拼音並擊。

支持并击,才称得上完整实现 Rime 的功能。

并击,同时按下键盘上的多个按键,手指松开时将击下的一组键当作输入发送。

做法并不优美。

Emacs 输入法不会收到抬键的 key release 消息,无法准确判断一次并击何时结束。

Rime 并击方案使用 librimechord_composer 组件,他会设置 _chord_typing 为 true,该状态与输入方案生命周期一致。rime.el 读取该状态,即可决定启用并击处理。

并击开始时,PR 修改的代码设置了一个计时器,等待 0.2 秒,这是熟练用家足以完成一次并击的时间。
这期间击下的字符键已经由 chord_composer 缓存住,可作为该次并击结果。
计时器响时,模拟出与之匹配的抬键的消息发给 librime,让他结束并击检测并开始译码。
librime 给出的结果可能是更新候选字或文字上屏(如单击空格仍为空格,空格也可并击输入拼音)。

@lotem
Copy link
Author

lotem commented Sep 25, 2025

能出字了。但是第一次写 elisp,还不会,请帮忙改改代码。


發現了這些問題:

在 I-search 的搜索框裏無法輸入(已知問題,關鍵是)按鍵的記錄已經亂了,即使退出搜索框也無法立即恢復正常。

在普通的 buffer 打到空碼也有一定機率卡住。

單擊空格無法上屏空格。

@lotem lotem force-pushed the master branch 2 times, most recently from 88d42da to d17094c Compare September 25, 2025 07:48
@lotem lotem marked this pull request as draft September 25, 2025 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant