Rime、双拼,按需云输入插件:本地词库打不出的新词、人名,按一下快捷键"问一下云端"。
网络上有不少全拼的 rime 云输入,但是没有双拼的。这个项目解决了这个问题。
输入 yhlikp(自然码双拼"杨立昆")
本地候选:养了 阳历 样例 … ← 词库里没有这个人
按 Ctrl+Alt+/:
1. 杨丽坤 (搜狗云) 2. 杨立坤 (搜狗云) 3. 杨立昆 (搜狗云)
选中上屏后,下次输入 yhlikp:
杨立昆 ☁ ← 已记入本地,不联网直接命中
- 按需触发:只在你按触发键(默认
Ctrl+Alt+/,冷僻组合不与系统/应用/方案抢键)时才查询云端,平时零网络请求、零延迟——这也是隐私边界:不触发,就不发送任何内容 - 双拼 + 辅助码原生支持:独有的"引擎内全拼还原"——从主翻译器的 spelling_hints 注释还原出无调全拼再查云,任意双拼方案(自然码、小鹤、搜狗…)+ 任意辅助码都不需要配置转换表。这是 librime-cloud(直接发送原始码,只支持全拼)做不到的
- 云词记忆:云候选上屏自动记入本地 LevelDb,同一编码再次输入时离线置顶(
☁标记),越用越快 - 多云源回退:搜狗(默认,中文人名/新词质量最佳)→ 谷歌 Input Tools → 百度 olime,主源失败自动切换
- 纯 Lua:无需编译,无二进制依赖,一个文件 + vendored json
| 依赖 | 说明 |
|---|---|
| librime-lua | 小狼毫(Windows)、鼠须管(macOS)内置;Linux 装发行版包(Debian/Ubuntu: librime-plugin-lua,Arch: librime 自带) |
| curl | Linux/macOS 自带;Windows 10+ 自带 |
translator/spelling_hints |
双拼方案必需(任意 >0 值即可);万象系方案默认已开启;纯全拼方案可不开(有原始码兜底) |
- 把
lua/wenyun.lua和lua/wenyun/目录拷入 Rime 用户目录的lua/下:
<rime用户目录>/
lua/
wenyun.lua
wenyun/
json.lua
- 在你输入方案的 custom 文件中挂载三个组件(以万象Pro为例,
wanxiang_pro.custom.yaml):
patch:
engine/processors/@next: lua_processor@*wenyun*processor
engine/translators/@next: lua_translator@*wenyun*translator
engine/filters/@next: lua_filter@*wenyun*filter其他方案(雾凇、朙月等)同理,把文件名换成对应的 <方案>.custom.yaml。
双拼用户请确认方案已开启 translator/spelling_hints(万象默认有;没有的加一行
translator/spelling_hints: 9)。
- 重新部署。
- 输入编码 → 按 Ctrl+Alt+/ → 云候选出现在候选列表前部,带
(搜狗云)等标记 - 选中云候选上屏 → 自动记忆;下次输入同样编码,该词带
☁直接出现,无需联网 - 云端也不认识的词(比如刚出现 48 小时的梗):老老实实逐字打一遍吧
在方案的 custom 文件 patch: 下:
wenyun/trigger_key: "Control+Alt+slash" # 触发键,键名用 librime keysym(slash/period/comma…)
wenyun/provider: sogou # 默认云源:sogou | google | baidu
wenyun/candidate_count: 5 # 云候选数量
wenyun/timeout: 1.0 # 单云源超时(秒)
wenyun/db_name: "lua/wenyun" # 云词记忆库路径(相对用户目录)
wenyun/debug: false # true 时写调试日志到 /tmp/wenyun.log| 云源 | 状态 | 备注 |
|---|---|---|
| 搜狗 | ✅ 默认 | 人名/新词质量最佳("杨立昆""梁文锋"都能给出),响应 ~40ms,HTTP 二进制私有协议 |
| 谷歌 Input Tools | ✅ 回退 | 整句质量好,但词库偏老(给不出近年的新人名) |
| 百度 olime | ❌ 已失效 | 接口返回 errno 19,保留实现备其复活 |
三者均为各厂公开 Web 端点,无需 key。接口非官方承诺,可能随时变更——失败时静默回退/放弃,不影响正常输入。
按下 Ctrl+Alt+/
└─ processor 置触发标记,刷新一次组句
└─ translator 检测到标记:
1. 用 Component.Translator 查询主翻译器(script_translator),
取首个整段候选的 spelling_hints 注释(词典带调全拼,
兼容万象系"拼音;辅码"格式),归一化 → 无调全拼
2. curl 查询云源(阻塞,超时封顶;只有这一下会卡)
3. 全编码覆盖的云候选以高 quality yield,置于候选前部
└─ 上屏时 commit_notifier 比对:是云候选 → 写入 LevelDb
└─ filter 兜底恢复被其他 Lua 方案(如万象 super_comment)清空的候选注释
Q: 按了触发键会卡一下? A: 是,librime-lua 没有异步机制,HTTP 是阻塞的。所以设计为按需触发:只有你主动按键的那一下会等待(搜狗实测 ~40ms,超时上限可配),平时打字零影响。
Q: 和 fcitx5 自带的云拼音模块什么关系?
A: fcitx5-module-cloudpinyin 只支持 fcitx5 自家的拼音引擎,明确不支持 Rime。本插件在 librime 内部工作,所有 Rime 前端(小狼毫/鼠须管/fcitx5-rime/ibus-rime)通用。
Q: 云候选和本地候选重复时显示两条吗?
A: 不会,方案过滤器链里的 uniquifier 会去重(万象等主流方案都有;没有的可自行在 filters 里加一行 - uniquifier)。
Q: 隐私? A: 只有按触发键的那一刻,当前输入串的拼音会发送到所选云源(搜狗/谷歌/百度),其余任何时候不联网。云词记忆完全在本地。
- hchunhui/librime-cloud —— 云输入触发模式与搜狗协议的先行者
- amzxyz/rime-wanxiang —— spelling_hints 注释生态与 Lua 工程实践参考
- rxi/json.lua —— vendored JSON 解析(MIT)
MIT