RIME‑Automatic‑Participle,一套基于librime‑lua开发的 Rime 处理器 + 翻译器组合脚本,专门解决同时存在三码、四码单字的形码方案连续输入痛点,典型场景如米十五笔这类码表:部分汉字 3 码结束、部分汉字 4 码结束。
传统 Rime 默认固定码长顶功,三码四码混杂时很难自动判断断字位置,往往需要频繁敲击空格来确认上屏,打断连续输入节奏。该插件通过 Lua 实时解析输入串,根据码表校验三码、四码编码有效性,自动推断断字点,实现无空格连续输入;输入长串编码自动拆分上屏多个汉字,仅在无法判定歧义时才交给用户手动选字。仓库附带米十五笔作为演示示例,脚本本身具备通用性,可迁移至其他仅存在三码、四码单字的形码输入方案。
提示:仓库自带米十五笔仅用于验证脚本逻辑,属于最简开发验证配置,不建议直接拿来日常使用,应当把 lua 脚本移植到自己成熟可用的 Rime 方案配置中。
核心功能
1. 三码 / 四码编码智能切分自动上屏
对输入编码串实时校验,判断前缀 3 位、 4 位是否在码表内为合法汉字,按照预设规则自动完成断字、上屏,减少空格按键。
| 输入码长 | 判定逻辑与行为 |
|---|---|
| 4 码 | 三码合法成字、四码不合法 → 自动上屏三码字 |
| 5 码 | 只有四码合法成字 → 自动上屏四码字 |
| 7 码 | 末尾三码、末尾四码均无效,判定首字只能四码 → 上屏前四码字 |
| 8 码 | 末尾三码、末尾四码均无效,判定首字只能三码 → 上屏前三码字 |
2. 连续循环处理剩余编码
完成第一个汉字自动上屏后,不会丢弃后面剩余编码,继续对剩下编码再次执行切分逻辑,实现一次输入长编码串,连续输出多个汉字。当出现歧义无法自动判定的时候,停止自动上屏,交由候选栏手动选择。
3. 长编码候选提示
搭配自定义 lua 翻译器,输入长串编码的时候,提供前三码、前四码对应的候选预览,方便用户在自动切分失效时手动干预选择。
4. 脚本通用性
核心逻辑不绑定米十五笔码表,只要你的码表只有三码、四码两类单字码长,修改少量配置就可以适配其它同类形码方案。
部署与配置
前置条件
Rime 环境安装librime‑lua;目标码表以 3 、 4 码单字为主。
- 将整个
lua文件夹复制到你的 Rime 用户目录;如已有rime.lua,合并脚本注册内容,不要直接覆盖。 - 在你的目标
schema.yaml配置文件的engine节点挂载脚本组件:
engine:
processors:
- lua_processor@*auto_commit
# 保留你原有其它 processors
translators:
- lua_translator@*my_translate
# 保留原有翻译器
- ⚠️重要兼容设置: 脚本与原生
speller四码自动上屏、自动用户调频会产生冲突。需要关闭用户词典自动调频:
translator:
enable_user_dict: false
- 保存配置,执行 Rime 重新部署。
注意:仓库中整套 mishi_wubi 演示方案仅做开发验证,词典并不完善,不要直接作为日常输入方案使用,只提取 lua 脚本移植进自己的成熟方案。
已知冲突与局限
- 和 Rime 原生 speller 的
max_code_length四码顶功机制互斥,二者不能同时启用; - 用户词典自动调频需要关闭,脚本只读取原始码表词条,不读取经过词频调整后的候选;
- 只适配只有三码、四码单字的码表;存在二码、五码及以上单字的码表不能直接使用,需要修改脚本逻辑;
- 遇到编码歧义,无法推断断字位置时会停止自动上屏,需要用户手动空格或者选字。
