插件开发与配置
想要为几维打造专属功能?从 Lua 脚本入手,你可以在数分钟内写出第一个插件。本页整理开发思路、配置方式与常用资源。
为什么从 Lua 开始
- ✅ 语法简单,上手快
- ✅ 热加载,无需重新编译
- ✅ 性能优秀,足以满足绝大多数场景
- ✅ 与 C++ 插件共存,随时扩展
当你需要极致性能或调用底层接口时,可再转向 C++ 实现。
Lua 插件开发速览
- 创建脚本文件:
用户目录\lua\myfilter.lua
lua
-- myfilter.lua
function myfilter(input)
for cand in input:iter() do
-- 在这里处理候选词
yield(cand)
end
end
return myfilter- 在方案中引用:
yaml
engine:
filters:
- lua_filter@myfilter- 重新部署:右键几维图标 → “重新部署”
插件类型概览
| 类型 | 作用 | 典型场景 |
|---|---|---|
| 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 社区分享:
- 新建仓库并编写 README / 使用说明
- 提供示例配置与演示 GIF(可选)
- 在 Rime 讨论区、Awesome 列表或几维社区发布
- 按需提交配方以支持
rime-install
想了解常见问题与调试技巧,请继续阅读 插件常见问题。