Skip to content

插件常见问题与诊断指南

本页整理了在部署第三方方案与开发 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 脚本未生效或崩溃的问题?

  1. 查阅引擎日志:Lua 虚拟机运行于输入法的后台进程中。所有未捕获的语法异常、越界访问及手动输出的 log.info() 均会被重定向至系统临时目录:
    • 路径:%LocalAppData%\Temp\witty.outwit\
    • 重点检索 ERRORFATAL 级别的堆栈追踪(Stack trace)。
  2. 校验挂载节点:确认 .lua 脚本文件名与 custom.yaml 中引用的 @ 标识符完全一致。
  3. YAML 语法检查:缩进错误是导致插件挂载失败的最常见原因。
  4. 管线冲突排查:临时在配置中使用 - 语法剥离其他所有 Filter 或 Translator,执行孤立测试,以排除多脚本串联导致的候选流被截断。

部署变更未生效

为什么修改了配置,但实际打字时毫无变化?

  1. 热重载断链:任何基于文件系统的配置修改,都必须执行 重新部署 操作才能被引擎重新编译并注入内存。
  2. 补丁优先级覆盖:确保你的修改是写在 *.custom.yamlpatch 节点下,而不是直接修改系统级的预设文件(这些文件会在后续更新中被强行覆盖或其优先级低于 custom 文件)。

社区互助规范

如果经过上述诊断仍无法修复故障:

  1. 提取完整的崩溃日志或异常现象截图。
  2. 提取引发故障的 *.custom.yaml 配置片段及 Lua 源码。
  3. 在 Rime 官方讨论区、Awesome 列表对应的项目 Issue 或是几维用户社区提交。

携带完整上下文与复现路径的技术提问,通常能在数小时内获得准确的开源社区反馈。