插件常见问题与诊断指南
本页整理了在部署第三方方案与开发 Lua 插件时的高频故障,并提供了标准化的诊断与排查路径。
兼容性与边界限制
几维输入法支持哪些 Rime 生态组件?
引擎对 Rime 原生体系保持了极高的二进制与接口兼容性:
- 完整支持所有基于 Lua 的 Processor、Translator 与 Filter 脚本。
- 完整支持基于 YAML 拓扑定义的输入方案(拼音、双拼、形码等)。
- 完整支持标准的字典格式及 OpenCC 配置矩阵。
- 深度兼容
librime的官方 C++ 插件(如 Octagram 语言模型)。
有哪些组件无法被外部兼容?
几维自研的无感文本替换插件(Witplace)因强依赖 Windows 端的 IPC 与 TSF (Text Services Framework) 接口,无法移植或兼容至鼠须管、小狼毫等其他 Rime 发行版。
性能损耗评估
加载海量插件或词库会拖慢输入响应吗?
- Lua 运行时:大部分正则匹配或过滤逻辑的执行延迟均处于亚毫秒级(< 1ms),对打字响应毫无影响。
- 语言模型 (N-gram):几维重构的 Witogram 插件采用内存映射(mmap)机制,驻留内存极低,对常规性能无明显负面干扰。
- 超大词库:核心影响集中在部署阶段(二进制索引编译时间延长)。在运行态,引擎使用的前缀树(Trie)检索复杂度与词库体积无关,不会导致打字卡顿。
Lua 脚本故障诊断
如何排查 Lua 脚本未生效或崩溃的问题?
- 查阅引擎日志:Lua 虚拟机运行于输入法的后台进程中。所有未捕获的语法异常、越界访问及手动输出的
log.info()均会被重定向至系统临时目录:- 路径:
%LocalAppData%\Temp\witty.outwit\ - 重点检索
ERROR与FATAL级别的堆栈追踪(Stack trace)。
- 路径:
- 校验挂载节点:确认
.lua脚本文件名与custom.yaml中引用的@标识符完全一致。 - YAML 语法检查:缩进错误是导致插件挂载失败的最常见原因。
- 管线冲突排查:临时在配置中使用
-语法剥离其他所有 Filter 或 Translator,执行孤立测试,以排除多脚本串联导致的候选流被截断。
部署变更未生效
为什么修改了配置,但实际打字时毫无变化?
- 热重载断链:任何基于文件系统的配置修改,都必须执行 重新部署 操作才能被引擎重新编译并注入内存。
- 补丁优先级覆盖:确保你的修改是写在
*.custom.yaml的patch节点下,而不是直接修改系统级的预设文件(这些文件会在后续更新中被强行覆盖或其优先级低于 custom 文件)。
社区互助规范
如果经过上述诊断仍无法修复故障:
- 提取完整的崩溃日志或异常现象截图。
- 提取引发故障的
*.custom.yaml配置片段及 Lua 源码。 - 在 Rime 官方讨论区、Awesome 列表对应的项目 Issue 或是几维用户社区提交。
携带完整上下文与复现路径的技术提问,通常能在数小时内获得准确的开源社区反馈。