librime‑lua‑stockprice 是基于librime‑lua开发的 Rime 输入法扩展插件。在输入股票名称拼音的时候,候选栏直接展示股票实时行情信息,包含现价、涨跌幅。不用切出输入法打开网页 / 客户端即可快速扫一眼行情数据,适合股民、金融从业者。

插件依靠新浪财经开放 API 拉取行情,支持 A 股沪 / 深 / 北交所、港股、美股;同时附带 Python 工具脚本,可以一键生成适配朙月全拼、小鹤双拼的股票扩展词库,让股票名称可以被输入法检索出来。 Windows 小狼毫、 mac 鼠须管、 Linux fcitx5‑rime 全部平台通用,要求环境具备 curl 、 iconv 工具。

工作流程:输入股票名称拼音, Rime 调出股票名称候选, Lua 过滤器触发网络请求,将「价格 + 涨跌幅」作为注释追加到候选词条。示例:输入byd,候选「比亚迪」后面附带 268.50 -0.85% [股票]行情备注。

核心功能

1. 多市场实时行情查询

  • 覆盖:上交所、深交所、北交所 A 股、港股、美股;
  • 自动容错:股票名称内的空格自动忽略,像 “万 科A” 这类带空格名称可以正常识别匹配;
  • 网络超时保护: curl 设置 1 秒连接超时, 2 秒执行超时,网络差不会阻塞输入法打字。

2. 性能防护策略

  • 只对排在前面的候选做行情匹配,最多处理前 20 条候选,避免大量网络请求拖慢输入;
  • 网络异常的时候,仅仅不显示行情注释,输入法本身不受任何影响,不会卡死。

3. 配套股票词库导出工具

仓库提供 Python 导出脚本,读取股票基础数据表,生成 Rime 标准扩展词典:

  1. 输出luna_pinyin.extended.dict.yaml朙月拼音全拼使用;
  2. 输出double_pinyin_flypy.extended.dict.yaml,适配小鹤双拼;
  3. 自动处理 A 股末尾 A/B 后缀、优化多字词编码,不会和原有词库冲突,作为扩展词典加载,不会改动系统原有词典。

4. 灵活的挂载配置

支持两种配置模式:

  1. 单方案配置(推荐):给朙月、小鹤双拼分别写custom.yaml,避免被方案配置覆盖;
  2. 全局配置:写入default.custom.yaml,部分方案会覆盖全局过滤器。

部署安装

前置依赖

  1. Rime 环境开启librime‑lua
  2. 系统具备curliconv
  3. 生成词库需要 Python3 ,pypinyin依赖包。

1. 部署 Lua 脚本

  1. 将仓库内lua/下面三个.lua文件复制到 Rime 用户目录的lua文件夹;
  2. 如果本地已经存在rime.lua,把项目中rime.lua内容合并进去,不要直接覆盖。

2. 挂载过滤器(以朙月拼音举例)

编辑luna_pinyin.custom.yaml

patch:
  "engine/filters/@next": lua_filter@stock_filter

使用小鹤双拼就修改double_pinyin_flypy.custom.yaml

3. 生成股票扩展词库(推荐)

pip install -r scripts/requirements.txt
python scripts/export_dict.py

脚本运行完成,会输出适配对应方案的.dict.yaml词典,复制到 Rime 用户目录,同时在 custom 配置修改 translator 指向扩展词典。

patch:
  "translator/dictionary": luna_pinyin.extended
  1. 执行 Rime 「重新部署」,全部配置生效。

使用示例

输入拼音候选展示效果
pingan1. 平安银行 12.34 +1.50% [股票]
byd1. 比亚迪 268.50 -0.85% [股票]

提示:网络断开、接口不可用时,股票名称依旧正常输出,仅仅行情注释不显示,输入法不会报错。

六、注意事项与局限

  1. 行情来源是新浪财经公开 API,接口属于第三方非官方接口,随时有可能失效,接口失效只会看不到行情,不影响输入法基础功能;
  2. 网络请求存在延时,输入股票拼音之后,行情注释不是瞬间出现;超时直接放弃获取行情;
  3. 股票基础词库是脚本导出,新股、退市股需要重新运行导出脚本更新本地词库;
  4. 需要系统环境有 curl ,部分精简 Windows 环境需要手动安装 curl 工具;
  5. 本插件仅提供行情查看注释,不能做交易,不构成任何投资建议