Skip to content

内置核心插件

几维输入法不仅包含了经典的 Rime 核心插件,还深度集成了 Outwit 专属的独创组件,极大拓宽了输入引擎的能力边界。

Lua 脚本运行时 (librime-lua)

  • 开源库librime-lua
  • 技术定位:Rime 官方的 Lua 脚本运行时,几维引擎提供完整兼容。
  • 典型应用
    • 动态候选词生成(日期、时间、计算器)。
    • 候选词重排与过滤(字符集限制、生僻字降权)。
    • 格式转换(数字转大写金额、Unicode 编码查询)。

示例代码

lua
-- lua/date.lua
function date_translator(input, seg)
  if input == "rq" then
    yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), "日期"))
  end
end

return date_translator

在方案配置中挂载:

yaml
engine:
  translators:
    - lua_translator@date

语言模型引擎 (Witogram)

  • 开源库librime-witogram
  • 技术定位:基于 KenLM 构建的高效 N-gram 语法模型驱动器。
  • 核心特性
    • 受官方 Octagram 启发并进行了深度的 C++ 架构重构,修复了底层变长编码带来的状态指针越界隐患。
    • 补全了原版模型缺失的标准回退(Backoff)权重,确保语言模型在处理未登录词(OOV)时符合统计概率分布。
    • 引入了对数线性打分架构,支持 Word/Char 级的动态分词降级机制。
    • 基于操作系统的内存映射(mmap)实现零延迟冷启动,将物理内存(RSS)消耗从数百兆压缩至极低水平,完全由打字时的活跃词命中率决定。

无感文本替换 (Witplace)

  • 开源库librime-witplace
  • 技术定位:类似 macOS 原生 Text Replacement 的操作系统级无感文本替换框架。
  • 核心特性
    • 非阻塞旁路检测:检测键盘记录的滑动窗口,完全不干预、不阻塞正常字符的上屏。
    • 底层 TSF 接管:与 Windows 专属前端 (OutwitTSF) 强耦合,通过 IPC 标签和操作系统的 TSF ITfRange::SetText 接口实现毫秒级的屏幕文本覆写。
    • 极简配置:在方案中挂载 witplace_processor,并在用户目录的 replace/ 文件夹下放置 YAML 字典即可生效。
兼容性限制

Witplace 强依赖于几维 Windows 客户端的特有 IPC 通信机制与 TSF 实现,无法兼容其他标准 Rime 生态输入法(如小狼毫、鼠须管)。

预测输入 (Predict)

  • 开源库librime-predict
  • 技术定位:基于历史输入记录的联想与预测插件。
  • 当前状态:上游机制尚在迭代,默认未启用
  • 功能预期
    • 依据上屏的上下文动态预测下一个合理的词组。
    • 支持快捷键(如 Tab)执行整词上屏。
    • 计划与 Witogram 及 Lua 运行时进行联动,实现混合维度的智能联想。