2025-06-12    2025-06-12    966 字  2 分钟

在使用小狼毫(Rime 的 PC 端实现)形码方案的过程中遇到这样的困扰 —— 开启自动调频之后才会自动造词,自动造词会导致词频变化,形码使用者往往喜欢固定词频……

那么,有没有一种方式,既可以实现固定词频,又能方便地添加自造词呢?是的,往下看~

快速开始

以下是需要的 lua 脚本,你可以在 loveminimal/rime-jk获取,如下:

lua
├── handle_user_words.lua    # 主脚本
├── user_words.lua           # 存储自造词 table
├── tiger_code_table.lua     # 虎码单字元表
└── wubi86_code_table.lua    # 五笔单字元表

将上述脚本添加至 根目录/lua 中后,在方案中启用该功能即可,如下:

1
2
3
4
5
6
7
8
9
engine:
  processors:
    - lua_processor@*handle_user_words*P
    - ascii_composer
    - ...
  filters:
    - lua_filter@*handle_user_words*F
    - simplifier
    - ...

重新部署,完毕。

如何使用该功能呢?先构造出你想添加的自造词,在选中的状态下,按下 Ctrl+i 即可添加至 user_words.lua 中,供下次读取。

![[assets/Pasted image 20250612110640.png|300]]

你还可以使用 ctrl+o 删除已添加的自造词。

需要注意的是在添加或是删除操作后,你需要 重启服务 或重新部署。后续的章节中,我们会给出推荐的重启服务的方式。

基础配置

我们提供了一些简单的配置项,最佳推荐配置如下:

1
2
3
4
5
6
7
8
-- 配制项 --
-- ① ➭ auto_reload_service
-- ¹ true 添加、删除操作之后「自动重启」服务,卡顿 
-- ² false  添加、删除操作之「手动重启」服务,不卡顿
-- - ²¹ 手动点击重启服务选项
-- - ²² rime_jk 方案可通过 ~rrr 触发重启服务「 不推荐 」新版本会崩溃
-- - ²³🎉〔 推荐 〕好消息,已经引入 ahk 调用外部命令(通过绑定 ctrl+p)解决重启服务
local auto_reload_service = false

既然不推荐在执行添加、删除操作之后重启服务,那应该使用什么方式呢?

在试用了不同方式之后,最终决定引入 ahk 来实现。我们提供了编译好的二进制文件 —— 根目录/ahk/rime.exe,双击启用即可。

启用 ahk 后,使用 ctrl+p 就可以快速重启服务了。

1
2
3
4
-- ② ➭ auto_generate_dict
-- ¹ true  同步生成与 user_words.lua 相对应的字典 - user_words.dict.yaml
-- ² false 不生成
local auto_generate_dict  = false

该项配置用来控制是否同步生成字典。一般来说,你不需要开启它,候选项会从 user_words.lua 中读取。只有当你想要导出自造词,固化成词典的时候,开启即可,它和 user_words.lua 中的自造词是完全同步的。

1
2
3
4
-- ③ ➭ keep_user_words_top
-- ¹ true 自造词升序排在前面
-- ² false 排在后面
local keep_user_words_top = true

该项配置用来指出自造词位于候选项的位置。

1
2
3
4
5
-- ④ 此处可以指定你的方案 schema_id
local schema_id_table = {
    ["tiger"] = "jk_tiger",
    ["wubi"] = "jk_wubi",
}

该项配置用来指定你使用的输入方案 schema_id ,如我使用虎码方案的 schema_idjk_tiger ,五笔方案的 schema_idjk_wubi

它会根据你当前使用是方案,自动切换为 user_words.lua 中的编码类型(虎码或五笔)。

结语

理论上,这种方式可以支持所有编码方案,感兴趣的朋友可以按需自行扩展。