小鹤音形词典:一个用 Rust 写的离线编码查询桌面工具

起因

用小鹤音形输入法快两年了,日常打字速度确实上来了,但偶尔遇到不确定的编码还是得去翻官方文档或者在线查码。在线工具有几个痛点:要联网、页面广告多、查完还得切回原来的窗口。Rime 用户还有一层需求------本地 .dict.yaml 词库文件越来越多,想加个自定义词组还得手动编辑 YAML、改 import_tables、再重新部署,流程繁琐且容易出错。

于是我想:能不能做一个本地离线的小工具,打开就查、查完就关,顺便把 Rime 词库管理也一起解决了?

这就是「小鹤音形词典」------ 一个用 Rust + egui 构建的跨平台桌面应用。

核心功能

离线编码查询

内置 79,783 条编码数据,直接编译进二进制文件,启动即可用,不依赖任何外部数据文件或网络。覆盖小鹤音形的全部 16 个分类:一级简码、二重简码、三码填空、四码全码(字/词)、首选字词、快符、符号、部首部件、Emoji、微信表情、网站直达、随心所欲等。

搜索引擎采用 Trie 前缀树 + 线性扫描的混合方案:输入纯字母时走编码查询(精确匹配 > 前缀匹配 > 子串匹配),输入中文时走文字反查。结果按相关度排序,最多返回 100 条,匹配片段高亮显示。查到的编码或文字一键复制,不用手动选中。

内置帮助文档

15 个章节的完整小鹤音形教程,从双拼入门到鹤形拆分规则,从字根表到简码表,全部原生渲染在应用内(不依赖 WebView)。支持全文搜索、章节间跳转、字根表/拆分示例等静态数据表格。按 F1 随时呼出,Esc 返回。

对于正在学习小鹤音形的朋友来说,相当于把官方文档、键位图、字根表全部整合到了一个窗口里,不用在浏览器标签页之间来回切。

键位图

内置小鹤音形完整键位图(WebP 格式),点击工具栏按钮即可弹出查看,点击其他区域自动关闭。背键位的时候随手就能调出来对照。

Rime 词库管理

这是我觉得最实用的功能 。应用会自动扫描本机的 Rime 目录,列出所有 .dict.yaml.txt 词库文件,支持:

  • 按文件启用/禁用,实时搜索外部词库内容
  • 按文字或编码排序,一键复制
  • 文件变更自动检测,mtime 变化时重新加载
  • 带缓存机制,大文件不会每次启动都重新解析

更关键的是「添加新词」功能:输入文字和编码后,应用会自动完成以下全部步骤:

  1. 将词条追加到自定义词库文件
  2. 设置其词频为高
  3. 自动触发 Rime 重新部署

以前手动改 YAML 容易漏步骤或者格式写错导致部署失败,现在全部自动化了。

自动更新

启动时静默检查 GitHub Releases,发现新版本后后台下载,SHA256 校验完整性,然后按平台执行安装:macOS 替换 .app 并去除 quarantine 属性,Windows 通过独立的 updater.exe 等待进程退出后替换重启。下载过程有进度条和耗时显示,支持取消和失败重试,也支持走系统代理。

平台支持

  • macOS(Apple Silicon + Intel)松鼠工具
  • Windows(x86_64)小狼毫

截图

搜索结果,绿色突出显示:

帮助文档,关键字突出显示:

添加自定义新词:

开源地址

项目以 Unlicense 协议开源,代码和下载都在 GitHub:

https://github.com/davelet/xiaohe-yinxing-dict

Releases 页面提供 macOS(.dmg / .zip)和 Windows(.zip)的预编译包,下载即用。

如果你也是小鹤音形用户,尤其是 Rime 用户,欢迎试用和反馈。有问题或建议可以直接提 Issue。

相关推荐
mldong8 小时前
流程实例如何沿着箭头走到结束:Rust 工作流引擎的执行内核
架构·rust
dozenyaoyida9 小时前
AI与大模型新闻日报 | 2026-09-01
人工智能·ai·大模型·新闻
それども11 小时前
IDEA接入Claude完整流程
java·ai·intellij-idea
ajassi200012 小时前
AI语音智能体开发日记(十五)智能体LCD屏幕GIF动画显示方案——从GIF到BMP的完整实战
人工智能·ai·ai编程
敢敢是只喵i13 小时前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
xierui12312315 小时前
NotionAgent 新增建议修改:如何用Patch、Diff 与人工确认设计 AI 改稿工作流
人工智能·ai·自然语言处理
小灰灰搞电子15 小时前
Rust+Slint 实现动态轮播图源码分享,支持动态删除、添加
开发语言·rust·slint·动态轮播图
奇牙coding12315 小时前
gpt-5.6-sol 调用一直 429 但 gpt-5.5 完全正常怎么办?排查思路与三种应对方案
gpt·ai
今天AI了吗16 小时前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
数据库·人工智能·python·sql·深度学习·机器学习·rust
Naylor18 小时前
切片:指向一段数据,而不是全部
rust