跳转至

🧠 超级处理器 (Super Processor):万象的按键中枢神经

这不是一个简单的快捷键脚本,这是一个接管并重塑整个输入法按键生命周期的“底层事件总线”。

在传统的 Rime 生态中,按键拦截逻辑往往是极度碎片化的。多个独立脚本“各自为战”,极易引发底层状态机的冲突、死锁与按键劫持。

万象的 super_processor.lua 彻底重构了这一架构。它打造了一个统一且极速的按键调度中枢,将以词定字、数字键调度、分词循环、字母选词、符号快打、重复限制、退格限制、声调回退 8 大核心能力,完美融铸于一个极其高效的毫秒级处理环内。

技术跃迁:跨语言正则转译引擎 (Regex Transpiler)

更具技术突破性的是,为了实现“零误判”的数字键正则路由调度,我们在底层专门自研构建了一套 C++ 至 Lua 的正则语法解析与转译引擎。它打破了底层引擎与上层脚本之间的跨语言正则解析壁垒,让万象既拥有 C++ 级别的严谨匹配机制,又具备 Lua 级别的极致动态张力,在配置层减小用户心智负担!


🌟 核心功能全景解析

1. 🎯 以词定字 (Select Character):拆词利器

遇到不会打的单字怎么办?打一个包含它的词组,然后单独提取!

  • 操作逻辑:当你输入编码并出现候选词时,按下 [ 即可自动上屏候选词的第一个字;按下 ] 则上屏最后一个字

  • (例如:想打“试”字,输入 ce ui 出现“测试”,按下 ],“试”字直接上屏)

2. 🔢 小键盘与“正则路由”引擎 (Numpad & Regex)

你在打字时,按下键盘上的数字键,它到底是应该“选词”,还是应该把“数字输入到编码区”

万象通过极度聪明的正则表达式路由 (Recognizer Patterns) 解决了这个千古难题。

智能数字调度逻辑

万象底层会将方案中的 recognizer/patterns 转化为 Lua 正则表达式。

  • 场景 A (匹配正则):当你输入 N202(日期模式)或 V12+(计算器模式)时,底层探测到你正在输入特殊格式,此时按下数字键 5,它会老老实实作为编码进入输入框(变成 N2025)。

  • 场景 B (常规选词):当你在正常打字时,按下数字键 1-9,它会立刻识别为选词操作,将对应候选词送上屏幕!

⌨️ 小键盘 (NumPad) 独立行为模式

除了主键盘的数字键,万象还允许你独立控制外接或全尺寸键盘右侧小键盘(NumPad)的专属行为。通过在配置中修改 kp_number_mode,让小键盘完美适配你的输入流:

  • select (选词对齐模式 / 默认) 小键盘的数字按键行为完全对齐主键盘的数字键。打字时按下小键盘数字,直接执行候选词上屏;匹配到正则规则时,则进入编码区。最符合大众的常规输入直觉。
  • auto (智能跟随模式) 只有在输入框中已有字母(正在输入拼音)的情况下,小键盘打出的数字才会进入编码区。如果当前没有输入拼音,敲击小键盘会直接把数字输出到屏幕上(相当于中英混输场景下的极速数字输入,无需切换英文状态)。
  • compose (强制编码模式) 小键盘打出的数字永远不会直接上屏,也绝对不会作为选词键。它会无条件跟随你正在敲击的按键,强行进入编码区。极度适合需要大量混合输入字母与数字编码的特殊工作场景。

3. ✂️ 超强分词循环 (Super Segmentation)

对于PRO长拼音,系统的自动分词(切割音节)由于辅助码差异问题,切分可能不符合你的预期。

  • 操作逻辑:在输入长拼音后,你可以连续按下分词符 '(单引号)。

  • 魔法效果:万象的处理器会动态计算音节长度,每次按下 ',系统就会在不同的分词组合边界(如 2-21-33-1)之间无缝循环切换,直到切出你想要的那个词!更长的句子切分统一按2均分,因为此种状态还要用不可能再去动态处理。

4. 🛡️ 极致防误触引擎 (退格与重复限制)

在高速盲打时,误触是不可避免的。处理器在底层为你加了两道安全锁:

  • 退格限制 (Backspace Limit):当你长按退格键删除错误拼音时,如果删到底了,传统的输入法会继续删除你已经上屏的正常文字!万象拦截了这一行为,在清空编码的瞬间会强制“刹车”,保护你辛苦打出的内容。

  • 重复限制 (Limit Repeated):如果你不小心把手压在了键盘上,输入了超过 8 个相同的声母(如 ffffffff)或超过 40 个无效音节,系统会立刻阻断并提示 〔已超最大重复声母〕,防止 Rime 引擎因为计算庞大无效图纸而卡死崩溃。

5. 🎵 声调回退与压缩 (Tone Fallback)

万象支持输入数字作为声调辅助。但在快速敲击时,很容易手抖打出多个相同的声调(如 wang888)。

  • 操作逻辑:处理器会自动将连续相同的声调数字进行无损压缩wang888 会被瞬间折叠纠正为 wang8,绝不干扰后续选词,这一特性还让输入错误变得没有代价,原来需要删除重新输入,现在我们只需要按下7890循环即可,出现想要的字就停下。

6. 🔠 特殊模式的字母选词 (Letter Selector)

当你在输入金额大写(如 R123)或时间模式时,数字键被占用了怎么办? 此时,数字键 1-9 会自动交接给主键盘的 q, w, e, r, t, y, u, i, o 键,让你依然可以通过字母进行极速选词!


🛠️ 如何配置与自定义?

上述的所有神仙功能,你都可以通过在 wanxiang.custom.yaml 中打 Patch 来自由开关和调节:

patch:
  # 开启以词定字,设置 [ 上屏首字,] 上屏尾字
  "super_processor/select_character": "[,]"

  # 重复限制阈值:"最大连续相同声母数, 最大允许音节数"
  "super_processor/limit_repeated": "8,40"

  # 小键盘数字键模式:select(选词), compose(上屏编码), auto(智能处理)
  "super_processor/kp_number_mode": "select"

  # 各种底层引擎开关 (true 开启,false 关闭)
  "super_processor/enable_backspace_limit": true  # 开启退格防误删保护
  "super_processor/enable_seg_loop": true         # 开启分词符单引号循环切割
  "super_processor/enable_tone_fallback": true    # 开启声调防手抖压缩
  "super_processor/enable_predict_space": false   # 联想空格优化 (按需开启)

给极客玩家的正则定制建议

如果你在折腾 Lua 或自定义方案时,发现某些场景下数字键本该输入却变成了选词。 你只需要前往 recognizer/patterns 节点,写一条你的正则表达式。super_processor.lua 在初始化时会自动抓取并转换这些正则,只要你的输入匹配,就会自动触发“放行拦截”,让输入体验无比丝滑。


万象超级处理器:看不见的毫秒级护航,感知得到的心流体验。