Skip to content

插件开发与配置

想要为几维打造专属功能?从 Lua 脚本入手,你可以在数分钟内写出第一个插件。本页整理开发思路、配置方式与常用资源。

为什么从 Lua 开始

  • ✅ 语法简单,上手快
  • ✅ 热加载,无需重新编译
  • ✅ 性能优秀,足以满足绝大多数场景
  • ✅ 与 C++ 插件共存,随时扩展

当你需要极致性能或调用底层接口时,可再转向 C++ 实现。

Lua 插件开发速览

  1. 创建脚本文件用户目录\lua\myfilter.lua
lua
-- myfilter.lua
function myfilter(input)
  for cand in input:iter() do
    -- 在这里处理候选词
    yield(cand)
  end
end

return myfilter
  1. 在方案中引用
yaml
engine:
  filters:
    - lua_filter@myfilter
  1. 重新部署:右键几维图标 → “重新部署”

插件类型概览

类型作用典型场景
Processor处理按键事件快捷键、选字逻辑
Translator生成候选词日期时间、计算器、扩展编码
Filter修改或过滤候选词字符集限制、注释、重排序

可在一个方案中组合多个处理器/翻译器/过滤器,形成复杂的输入逻辑。

读取配置示例

lua
local config = env.engine.schema.config
local enabled = config:get_bool("custom_plugin/enabled")
local message = config:get_string("custom_plugin/message")

对应的配置文件结构:

yaml
custom_plugin:
  enabled: true
  message: "Hello, Rime!"

配置范例

yaml
patch:
  engine/processors:
    - lua_processor@*custom_processor

  engine/translators:
    - lua_translator@*date
    - lua_translator@*calculator

  engine/filters:
    - lua_filter@*charset_filter
    - lua_filter@*corrector

使用 patch+ / - 语法可增删已有插件:

yaml
patch:
  engine/translators/+:
    - lua_translator@*lunar
  engine/translators/-:
    - lua_translator@*predict

学习与参考

分享与贡献

欢迎将你的脚本或方案发布到 GitHub,并在 Rime 社区分享:

  1. 新建仓库并编写 README / 使用说明
  2. 提供示例配置与演示 GIF(可选)
  3. 在 Rime 讨论区、Awesome 列表或几维社区发布
  4. 按需提交配方以支持 rime-install

想了解常见问题与调试技巧,请继续阅读 插件常见问题