V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ns09005264
V2EX  ›  中州韻

分享一个可以很方便地维护 Rime 词库的小工具

  •  
  •   ns09005264 · 283 天前 · 2025 次点击
    这是一个创建于 283 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果你在使用形码或音形之类的固词码表式的输入方案,也许会碰到想要加词或删词之类的情况。

    像我用的星空键道 6 虽然有一个不错的大词库,但是显然公用的大词库还是不能满足所有人的,自己维护一个词库是很有必要的。

    然后我便写了一个小工具,可以很方便的维护 Rime 的 dict 文件。

    Github

    https://github.com/MapoMagpie/rimedm

    我没有 Mac 设备,没测试过 Mac 平台,如果有人使用的话,麻烦向我反馈一下是否存在问题。

    视频演示: 我们不用很累很麻烦就可以维护词库

    特性如下

    • 自动读取各平台的默认方案,某种程度开箱即用。
    • 增删改查。
    • 良好的性能,20MB 文件的读取与搜索性能都不错(fzf 的模糊查询算法)。
    • 自动读取主词库的拓展词库。
    • 修改即生效,修改后会通过指令自动部署 Rime 。

    一键安装

    Windows (可能需要 PowerShell 5.1 版本以上,从微软应用商店中下载最新的 PowerShell)

    复制以下代码,打开 PowerShell 并粘贴

    iwr https://github.com/MapoMagpie/rimedm/raw/main/install.ps1 -useb | iex
    

    Lnux/MacOs

    curl -fsSL https://github.com/MapoMagpie/rimedm/raw/main/install.sh | bash -s
    

    手动安装

    可以查看 Github 项目 Readme 中的说明。

    加词

    11 条回复    2024-06-28 10:54:15 +08:00
    chowhong
        1
    chowhong  
       282 天前 via Android
    试试看,正好有需要在 win 和 Linux 之间同步。如果能同步安卓就更好了。
    tankb52
        2
    tankb52  
       185 天前 via Android
    可以可以,今天正好手动删除了 1300 多条词汇。
    tankb52
        3
    tankb52  
       185 天前 via Android
    请问有调整词序的功能吗??
    ns09005264
        4
    ns09005264  
    OP
       185 天前
    @tankb52
    词序是指重码时的权重值吗,没对这方面做优化,因为我的输入方案不需要考虑词序。
    要不你详细描述下需求,比如在碰到重码时,通过什么方式可以快捷的调整权重,
    比如按一个组合键来移动调整权重。
    tankb52
        5
    tankb52  
       184 天前 via Android
    对,就是重码,我的词库很大,习惯空格首词上屏,冒号次选上屏。
    所以自己加的词经常需要考虑到和原有词的排序。

    举了例子,我原来编码 aaaa 对应有三个词。

    我使用 rimedm 加词方法:
    1.输入 编码 新词,这时 rimedm 会根据编码筛选列出对应词组。

    aaaa 词组 3
    aaaa 词组 2
    aaaa 词组 1
    ——
    :aaaa 新词


    2. 这时我按上下键,高亮词组 2——我是以为我在选择位置。

    3. 按回车选择 add

    新词 要么加在词组 2 前,要么加在词组 2 后,这我都能理解。


    结果打字时,这个词好像默认加到最后,排第 4 了。

    输入框:
    aaaa
    1. 词组 1 2. 词组 2 3. 词组 3 4. 新词。

    但在 rimedm 中 输入编码检索时好像又是出现在 3 的位置。

    aaaa 词组 3
    aaaa 新词
    aaaa 词组 2
    aaaa 词组 1
    ——
    :aaaa

    这就很不直观了,我希望至少是这样:
    1. 我输入 :编码 新词,
    2. rimedm 根据编码筛选出原有词 1 、2 、3 。
    3. 我再按上下键,选择位置 2 高亮,然后回车,选择 add 。

    aaaa 词组 3
    aaaa 词组 2 →这行高亮
    aaaa 词组 1
    ——
    :aaaa 新词

    结果:把新词加到词组 2 的前面。
    ns09005264
        6
    ns09005264  
    OP
       183 天前   ❤️ 1
    @tankb52 新版本 1.0.6 增加了权重相关的功能,可以直接通过一键安装脚本来更新,或者看 README 手动安装。
    加词时,如果当前高亮的词组有权重值,则新加的词组的权重值为高亮词组权重-1 ,PS:权重值越高在 rime 里越优先。
    然后还可以通过 Ctrl+方向键来快速修改高亮词组的权重,左右是加减,上下是根据相邻项的权重来加减。
    然后 Ctrl+H 可以看帮助,再次 Ctrl+H 或 Enter 退出帮助。
    有什么问题欢迎反馈。
    ns09005264
        7
    ns09005264  
    OP
       182 天前
    @tankb52 1.0.6 有 bug ,开启了实时同步部署后,在运行时进行了多次修改或删除,最终退出程序时,只会同步最后一次的修改到码表中。建议更新到 1.0.7
    tankb52
        8
    tankb52  
       179 天前 via Android
    wangyifan
        9
    wangyifan  
       146 天前
    为什么添加不上
    ![screenshot-20240628-095822.png]( https://s2.loli.net/2024/06/28/af17RvAhPZpQXCU.png)
    ![screenshot-20240628-095830.png]( https://s2.loli.net/2024/06/28/81wNLjXb4hnFKO5.png)
    ns09005264
        10
    ns09005264  
    OP
       146 天前
    @wangyifan

    看起来没有找到 Rime 码表文件(xxx.dict.yaml)

    你可以在 ~/.config/rimedm/ 目录下找到 rimedm 的配置文件和日志,在配置文件 config.yaml 里看看 dict_paths 项指定的码表文件是什么,然后修改成正确的,一般来说是 方案名.dict.yaml

    由于每个人电脑里的环境不同,有时候不能自动找到正确的码表,所以需要在配置文件里指明码表所在的位置。
    自动查找码表的逻辑是这样的:在~/.local/share/fcitx5/rime/default.custom.yaml 里找到你正在用的方案名,然后根据方案名拼接 `方案名+.dict.yaml`,就是码表文件了,但是有些方案可能不是这样的规范,比如小鹤的码表大概是 flypy.dict.txt ,这样就找不到了。

    简单来说:就是把 ~/.config/rimedm/config.yaml 里的 dict_paths 改成你的码表文件就可以了。

    另外我刚刚更新到 1.0.8 ,现在加载不到正确的码表文件会提示并退出。
    ns09005264
        11
    ns09005264  
    OP
       146 天前
    更新到 1.0.8 还是用同样的一键安装命令。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2992 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.