205. rime系软件的使用
目录
- 配置目录/用户文件夹:
- 鼠须管:
~/Library/Rime
- 小狼毫:
%APPDATA%\Rime
- 鼠须管:
- 共享目录/程序文件夹:
- 鼠须管:
/Library/Input Methods/Squirrel.app/Contents/SharedSupport
- 小狼毫:
<安装目录>\data
- 鼠须管:
自己的配置放到配置目录里就可以。共享目录提供了一些自带的方案及各项默认配置,可以直接引用;无特殊需求,不要修改共享目录的文件。
比如 opencc 简繁转换的配置可以直接书写 s2t.json
,因为共享目录里已经有相关文件了。
build/
目录是部署后自动生成的,不要修改,出错时可以看看里面生成的是否正确。首次部署较慢,主要是拼音方案词库很大,如果下次部署前没有修改词库,就会很快完成部署。
以patch的方式打补丁
使用说明
文件名为 xxx.custom.yaml
,内容以 patch:
开头的,是补丁文件,注意缩进,可以对原配置进行覆盖和追加。
- 方案
xxx.schema.yaml
的补丁文件是xxx.custom.yaml
default.yaml
squirrel.yaml
就是把结尾的.yaml
改成.custom.yaml
具体语法参考官方 wiki:定製指南
1 | patch: |
patch 时支持用 /
来分隔节点,打补丁时可以这样写(比如有如下文件 rime_ice.custom.yaml
):
1 | patch: |
但是非补丁的文件只能展开来写(比如 rime_ice.schema.yaml
):
1 | a: |
查看patch是否打上
点击Rime的”重新部署“选项
查看配置文件夹下的Build目录中的
xxx.schema.yaml
如: 小鹤音形的Build目录下是
flypy.schema.yaml
查看
xxx.schema.yaml
是否含有你设置的项Tip: 可以先生成原始配置的
xxx.schema.yaml
, 再生成自己配置后的xxx.schema.yaml
, 最后将这两个文件对比, 看看异同.
实例
1 | # 以 patch: 开头,后面的内容都需要缩进 |
如果选项是数组,比如 switches
,得用 switches/@n:
什么的,可读性不好,改多了就乱了,万一原始方案文件更改了顺序就会造成错误,不如全部复制过来再改。
配置
Rime 的配置可以很灵活复杂,比如设置一个快捷键:
- 可以在方案文件
xxx.schema.yaml
中设定; - 也可以在方案的补丁文件
xxx.custom.yaml
中设定; - 也可以写在
default.yaml
或defaut.custom.yaml
中,再在方案中引用; - 也可以额外创建一个 YAML 文件,再在方案中中引用。
比如我想让所有方案共用同一套快捷键,不用写很多份。写在 default
中就比较合适,然后再在多个方案中进行引用:
在 default.yaml 或 default.custom.yaml 中配置
1
2
3key_binder:
bindings:
# ... 相关快捷键配置在多个方案 xxx.schema.yaml 或 xxx.custom.yaml 中引用
1
2key_binder:
import_preset: default # 从 default 继承快捷键的相关配置
注解:
import_preset
是导入成套的配置。__include
是在当前位置包含另一 YAML 节点的内容。
具体用法参考官方 wiki。
下面是一个典型的示例:
1 | # 方案文件 xxx.schema.yaml |
码表和词库
字段解释
translator/enable_user_dict
是默认开启的,即记录用户输入内容。
用户词典类型 translator/db_class
的值默认为 userdb
,即二进制文件,输入过的内容会记录在 *.userdb/
文件夹中,只有在同步后才能在同步目录看到人类可读的用户词典;另一个值是 tabledb
,会直接在配置目录生成一个人类可读的 txt 文件。如有多平台同步需求,使用默认值 userdb
。
编写词库
由于 Rime 的设计,拼音词库中并不适用非拼音编码:
1 | hello hello |
Rime 在部署时会综合词库中所有音节和拼写规则生成一个映射表,如果开启了简拼,过多的英文单词会导致打字时极其卡顿。上面单个的编码也会导致 s
、j
、d
结尾时无法响应超级简拼。
英文建议放到英文方案,非常规的注音建议放到自定义短语 custom_phrase.txt
。
词库默认的列是:
1 |
|
对于没有注音,又想设置权重的词库文件,修改列即可:
1 |
|
挂载自己的词库
词库文件以 .dict.yaml
结尾。
词库由具体方案指定:
1 | # rime_ice.schema.yaml |
可以把所有词条堆在这个文件,也可以将这个文件作为一个入口,通过 import_tables
再挂载多个词库:
1 | # rime_ice.dict.yaml |
词库名 xxx.dict.yaml
和词库中的属性 name: xxx
可以不同,但建议设置为一样的。
其他类型的词库,可以通过 一些脚本 或 深蓝词库转换 转为 Rime 格式的。
自定义文本
在 custom_phrase.txt
中可以放置一些特定的词汇与编码,比如输入 vmail 得到自己的邮箱,输入 vphone 得到手机号,输入 vuser 得到用户名等等。
我自己的理解:每个方案都有一个主翻译器,例如拼音;也可以增加一个次翻译器,例如英文;还可以再增加其他的,例如自定义文本。
custom_phrase.txt
文件内的字词会占据最高权重,即排在候选项的最前面。(默认是这样的,但可以通过 initial_quality
调整各个翻译器的权重)
自定义文本不与其他翻译器互相造词,如果使用了完整编码,那么这个字或词将无法参与造词,即自造词无法被记住。
所以建议只固定非完整编码的字词,「的de」应为「的d」,「是shi」应为「是s」,「仙剑xianjian」应为「仙剑xj」。
注意全拼的
a o e
也是完整拼写,不宜将a o e
的单字写进自定义文本,否则「啊 哦 呃」无法进行造词。
💡 置顶已经由 pin_cand_filter.lua
实现,可参与造词。
小鹤音形添加词库的另一个方法
patch方法添加
在”flypy.schema.yaml“ 的补丁文件是 “flypy.custom.yaml” 中添加
patch
:1
2
3
4
5
6
7
8
9
10
11patch:
engine/translators/+:
- table_translator@custom_phraseQRL # 添加词库custom_phraseQRL
custom_phraseQRL:
dictionary: ""
user_dict: flypy_qrl
db_class: stabledb
enable_sentence: false
enable_completion: false
initial_quality: 0 #本表词和系统词重码居前其中:
custom_phraseQRL
: 词库的名称custom_phraseQRL
项: 自定义的词库名称user_dict: flypy_qrl
: 是自定义词库文件的名字 flypy_qrl, 文件全名为 flypy_qrl.txtinitial_quality
: 设置本表词和系统词重码的位置: 0, 居前; -1, 居后
添加flypy_qrl.txt文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# coding: utf-8
# 用户自定义词库
# 与系统词条重码时居前, 如想居后, 请把需要居前的词条添加进该文件, 然后分别为两个词条添加权重, 本文件权重范围: 0-10
#
# 编码格式:字词+Tab符+编码(用户词库本身有重码则还需后面+Tab符+权重, 权重大者居前, 权重数字随意)
#
# ------------------强调一下----------------------
#
# 词条和编码之间的不是空格, 而是Tab符
# 按住键盘 G 键, 切换到功能键盘, 使用上面的Tab键
#
# ------------------------------------------------
#
# 简词补全放本文件内, 不需要可删除
# 用户词库, 下行开始添加, 编码格式见上, 部署后生效
缘起性空 yqxk
配置中英文切换提示
patch补丁(推荐)
本人使用的是小鹤音形, 因此方案 “flypy.schema.yaml“ 的补丁文件是 “flypy.custom.yaml”
1 | patch: |
同样地, 也可以使用单项修改(不推荐, 因为是修改列表, 容易乱, 不如复制原版, 在此基础上修改)
1 | switches/@1/states: [ 中, 英 ] |
修改原文件(不推荐)
这里以小鹤音形为演示, 配置文件皆为 flypy*
进入Rime配置文件夹: ~/Library/Rime
打开 flypy.schema.yaml 文件
在
switches
项中的name
为”ascii_mode
“项添加states: ["中文", "英文"]
或states: [ 中文, 英文 ]
, 如下所示:1
2
3
4
5
6
7
8
9switches:
- name: ascii_mode
reset: 0
states: ["中文", "西文"]
- name: full_shape
- name: simplification
reset: 0
- name: ascii_punct
reset: 0
关闭全角按键shift+space
patch补丁(推荐)
本人使用的是小鹤音形, 因此方案 flypy.schema.yaml 的补丁文件是 flypy.custom.yaml
下面两种方法2选1
修改单项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15patch:
key_binder/bindings:
- {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
- {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
- {accept: comma, send: comma, when: paging} #注销逗号翻页
- {accept: period, send: period, when: has_menu} #注销句号翻页
- {accept: semicolon, send: 2, when: has_menu} #分号次选
# - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
- {accept: Release+period, send: period, when: composing} #句号顶屏
- {accept: Release+comma, send: comma, when: composing} #逗号顶屏
- {accept: "Tab", send: Escape, when: composing}
- {accept: "Shift_R", send: Escape, when: composing}
- {accept: "Shift+space", toggle: noop, when: always} #切换全半角
- {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
- {accept: "Control+j", toggle: simplification, when: always} #切换简繁可以说仅修改
key_binder/bindings
单项, 而不包括bindings
的单个按键项修改整个段落(更大项)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17patch:
key_binder:
import_preset: default #方案切换相关
bindings:
- {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
- {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
- {accept: comma, send: comma, when: paging} #注销逗号翻页
- {accept: period, send: period, when: has_menu} #注销句号翻页
- {accept: semicolon, send: 2, when: has_menu} #分号次选
# - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
- {accept: Release+period, send: period, when: composing} #句号顶屏
- {accept: Release+comma, send: comma, when: composing} #逗号顶屏
- {accept: "Tab", send: Escape, when: composing}
- {accept: "Shift_R", send: Escape, when: composing}
- {accept: "Shift+space", toggle: noop, when: always} #切换全半角
- {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
- {accept: "Control+j", toggle: simplification, when: always} #切换简繁
修改原文件(不推荐)
进入Rime配置文件夹
打开 flypy.schema.yaml 文件
搜索
shift+space
项, 并修改toggle
为noop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16key_binder:
import_preset: default #方案切换相关
bindings:
- {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
- {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
- {accept: comma, send: comma, when: paging} #注销逗号翻页
- {accept: period, send: period, when: has_menu} #注销句号翻页
- {accept: semicolon, send: 2, when: has_menu} #分号次选
# - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
- {accept: Release+period, send: period, when: composing} #句号顶屏
- {accept: Release+comma, send: comma, when: composing} #逗号顶屏
- {accept: "Tab", send: Escape, when: composing}
- {accept: "Shift_R", send: Escape, when: composing}
- {accept: "Shift+space", toggle: noop, when: always} #切换全半角
- {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
- {accept: "Control+j", toggle: simplification, when: always} #切换简繁
设置中文输入使用英文标点
patch补丁(推荐)
本人使用的是小鹤音形, 因此方案 flypy.schema.yaml 的补丁文件是 flypy.custom.yaml
下面两种方法2选1
修改单项
1
2patch:
punctuator/import_preset: alternative修改整个段落(更大项)
1
2
3patch:
punctuator:
import_preset: alternative
修改原文件(不推荐)
-
1
curl -JLO https://gist.githubusercontent.com/lotem/2334409/raw/0941ff22b30e8a6199838623d31a9406ee1d8a74/alternative.yaml
进入Rime配置文件夹
打开 default.custom.yaml 文件
在
punctuator
项的import_preset
为alternative
1
2punctuator:
import_preset: alternative
单词自动上屏
patch补丁
本人使用的是小鹤音形, 因此方案 flypy.schema.yaml
的补丁文件是 flypy.custom.yaml
下面两种方法2选1
修改单项
1
2patch:
speller/auto_select: false #顶字上屏修改整个段落(更大项)
1
2
3
4
5
6
7
8
9
10patch:
speller:
alphabet: "abcdefghijklmnopqrstuvwxyz;'"
initials: ';abcdefghijklmnopqrstuvwxyz'
finals: "'"
#delimiter: " '"
max_code_length: 4
auto_select: false #顶字上屏
auto_select_pattern: ^;.$|^\w{4}$
auto_clear: max_length #manual|auto|max_length 空码按下一键确认清屏|空码自动清|达到最长码时后码顶上清屏
修改原文件(不推荐)
1 | speller: |
待测试
开关记忆
方案中有几个开关(switches
),比如简繁开关、Emoji 开关、中英标点开关。。。
如果设定了 reset,值为 0 或 1,则默认使用第一个或第二个值,即便使用时修改了,切换程序后还是默认值。
如果想让输入法永远记住,需要取消设置 reset
,并在 default.custom.yaml
中写入 save_options
。
*永远记住的前提是通过方案选单选择,而不是快捷键切换 (╯’-’)╯︵┻━┻
如何删除相关功能
比如删除英文输入,所有的相关配置是这些:
1 | # dependencies 下的: |
拼字方案同样,此外还有一些 Lua 的功能,直接在 engine
下注释掉那一行就禁用了。
删词or降权
可以删除自造词,或降低词库中已有词语的权重(回到原始权重,不是降到最低)。
- 鼠须管使用 Fn + ⇧ + ⌫
- 小狼毫使用 Ctrl/Shift + Del
想永久删除一个词库中存在的词汇,只能编辑词库,重新部署。
如果各位有在使用过程中有发现什么错别字,希望可以提个 issue。
Tab 切光标
这功能挺好用的,每次用别人的电脑打字都会怀念这个功能。
已经默认开启,可以使用 Tab 或 Shift + Tab 在拼音中前后移动。

对于「xian西安」「tian提案」这种拼音,如果想切到「xi、ti」的后面,只能用左右方向键移动。
另外 Shift + ⌫ 可以删除单个汉字的拼音。
不同的上屏方式
按下空格会上屏汉字,按下回车会上屏字母(可临时输入一些词库中没有的英文)。
以输入「虐心 nue’xin」为例:
- 按回车,上屏的是
nuexin
。 - 按 Ctrl/Shift + 回车,上屏的是
nve xin
。(u → v,中间有空格)
translator/preedit_format
这里会影响输入框和 shift + 回车时的显示,比如是显示 nue、nve 或 nüe。
如果是双拼方案,preedit_format
还可以选择是否在输入框进行转换,比如小鹤双拼输入 zz
时,是显示 zz
还是 zou
。
要设置双拼不转换为全拼,可以直接把 preedit_format
及下面那些 xform
都删除,或者这样打补丁:
1 | patch: |
opencc
opencc 除了做简繁转换,也可以做词语映射。
比如想输入摄氏度的符号 °C ,可以自定义文本 custom_phrase.txt
中写上:
1 | °C sheshidu |
但这样,这个符号会顶到第一个候选项,重码时影响平时打汉字。推荐用 opencc 的方法,Emoji 就是这样实现的。
1 | 摄氏度 摄氏度 °C |
输入 摄氏度
,第一个候选项是其本身,后续则是映射的其他内容。类似输入 提手旁
会得到 提手旁 扌
,输入 相泽南
会得到 相泽南 相沢みなみ
等等都是这么做的。
这个「输入内容」其本身应该在词库中存在,否则只能输入过一次后才会有响应。
还有个用法是 show_in_comment: true
,可以让「响应内容」放到 comment
里面。
show_in_comment: true
可以实现显示英文单词的翻译,类似哈利路亚输入法,尝试过加入这个功能,一是没有找到比较好的简短翻译数据;二是 Rime 的 comment
区域并不是一个独立存在的窗口,翻译和候选项挤在一起看起来乱糟糟的。
同步
文件说明
installation.yaml
文件在第一次部署后会自动生成,在这里可以编辑当前设备的 ID 和同步目录,如:
1 | # 本机的 ID 标志,默认是一串 UUID |
在你输入过内容后,配置目录下会生成 *.userdb/
文件夹,里面是二进制的用户词典。
点击「同步用户数据」后,Rime 会和配置目录下的 *.userdb/
进行双向更新同步,并在同步目录(/file/path/sync/MBP-001
)下生成的 *.userdb.txt
,里面都是输入过的内容。
同步目录里还有其他一些没用的文件,Rime 额外单向备份了配置目录下的 YAML 和 TXT 文件,但只有根目录的,比如文件夹里的词库、八股文模型、
rime.lua
就没有被同步过来。
⚠️ Windows 用户注意 YAML 语法,反斜杠在双引号中转义,在单引号中不转义:
1 | sync_dir: "c:\\file\\path\\sync" |
多设备同步
将所有平台的 sync_dir
设定为同一个目录,比如 iCloud、Dropbox 的目录。
多个设备在这个目录中会生成并列的文件夹,里面是用户词典。

PC-1 里点【同步】,通过网盘同步到 PC-2,PC-2 再点同步,才可以获得 PC-1 输入过的内容。
用户词典迁移
如果之前在用别的方案,如 pinyin_simp
或 luna_pinyin
。
- 将之前的
pinyin_simp.userdb.txt
或luna_pinyin[_simp].userdb.txt
放到同步目录 - 命名为
rime_ice.userdb.txt
- 修改文件里面的
#@/db_name
为rime_ice
- 点击【同步用户数据】后就可以了

如果之前用的是繁体词库,还需要提前做一个简繁转换,注意不要把 Tab 全转为空格了。
简单的方法,比如 Mac 上通过 VSCode 打开 ➡️ 全选 ➡️ 左上角 Code ➡️ 服务 ➡️ 将文本转换为简体中文。
或者用 opencc:
1 | $ opencc -c t2s -i in.txt -o out.txt |
git同步配置文件
本人主要使用了3个配置文件: “flypy.custom.yaml, flypy_qrl.txt, alternative.yaml“, 分别对应为 flypy补丁文件, 个人词库, 中英文标点替换.
本步骤适用于MacOS, 具体步骤如下
创建git仓库, 将配置文件复制到git仓库本地文件夹中
将配置文件的软链接添加到Rime配置路径
可使用以下命令添加软链接
ln -s -f <指向的目标文件> <存放软链接的文件夹>
如果修改修改git仓库本地文件夹或Rime配置文件夹中都是一样的, 从而保障线与离线一致性