Rime 输入法指北
前言
出于对国产输入法软件的不信任,再加上国产输入法广告太多等因素的影响,促使我想要尽快找到一个开源、快捷、不自动上传云端的输入法。
在网上搜索时,Rime 收到了一致好评,让我萌生了非常大的兴趣,故特意找到了 Rime 的相关资料并整理。
本文基于 Rime v1.5.3
版本进行整理,其他版本可能不适用。
关于 Rime
什么是 Rime
Rime 全名是「中州韵输入法引擎」,Rime 不是一种输入法。是从各种常见键盘输入法中提炼出来的抽象的输入算法框架,由 佛振 大佬开发。
Rime 通过各种输入方案来实现对几乎所有中文的支持,包括但不限于【拼音】、【注音】、【双拼】、【五笔】、【仓颉】,并且可以简单的进行【简繁】的切换
什么是输入方案
Rime 由于本质只是一个框架,本身是不知道如何输入的。
如果我们想要使用 Rime,就得定义一些关于如何输入的设置来告诉 Rime,这些设置就是输入方案。
Rime 的版本
Rime 是一个天生跨平台的框架,在每一个平台都有对应的发行版本:
- Linux:
- 官方:
ibus-rime
(中州韵) - 第三方:
fcitx-rime
- 官方:
- windowns:
- 官方:
Weasel
(小狼毫) - 第三方:
PRIME
- 官方:
- macOS:
- 官方:
Squirrel
(鼠须管) - 第三方:
XIME
- 官方:
- Android:
- 第三方:
Trime
(同文)
- 第三方:
- iOS:
- 第三方:
iRime
- 第三方:
上面是 Rime 在各平台对应的软件,Rime 默认提供了两个拼音输入方案「朙月拼音」和「地球拼音」,两者都可以输入准确的繁体和简体,而且「地球拼音」还支持声调输入。
Rime 还支持了许多种方言拼音,如吴语、粤语,甚至中古汉语。
Rime 的文件架构
Rime 所有的配置文件、输入方案及词典文件,均是普通的文本文档,均要求 UTF8 编码。
其中配置文件、输入方案要求使用 yaml 格式的文件。词典文件使用普通的 txt 文档即可。
Rime 中将文件分为 共享文件夹
和 用户文件夹
。
共享文件夹
中存放的是 Rime 发行版的默认文件,一般是不允许进行修改的- 【中州韵
ibus-rime
】/usr/share/rime-data/
- 【小狼毫
Weasel
】安装目录\data
- 【鼠须管
Squirrel
】/Library/Input Methods/Squirrel.app/Contents/SharedSupport/
- 【中州韵
用户文件夹
的存放位置- 【中州韵
ibus-rime
】~/.config/ibus/rime/
- 【小狼毫
Weasel
】%APPDATA%\Rime
,也可以通过“开始菜单\小狼毫输入法\用户文件夹”打开。 - 【鼠须管
Squirrel
】~/Library/Rime/
,也可以通过“系统输入法菜单/鼠须管/用户设置”打开。
- 【中州韵
用户文件夹
刚开始安装后,在 用户文件夹
中是没有文件的,当我们运行 Rime 后会出现以下文件/文件夹:
build/*
:这个文件夹下存放的是我们每次部署之后生成的静态文件<输入方案名>.prism.bin
:Rime 棱镜,拼写运算规则<词典名>.table.bin
:Rime 固态词典,按音节编码检索词条的索引<词典名>.reverse.bin
:Rime 反查词典,按词条检索编码的索引
<词典名>.userdb/*
:这个文件夹是我们的词典文件夹,当我们进行了输入之后,会将输入的内容存入,以便进行词语调频installation.yaml
:这个文件是关于我们本机 Rime 的安装时间、版本信息等user.yaml
:这个文件是关于 Rime 的一些设置选项,比如我们上次选择的输入方案
Rime 的配置文件都需要放于 用户文件夹
下,分为三类:
default.yaml
:全局配置,存放跨输入方案的通用配置<输入方案名>.schema.yaml
:存放某一个输入方案的配置
如:double_pinyin_flypy.schema.yaml
<发布版名>.yaml
:存放某个发行版的独有配置
如:symbols.yaml
如果有其他额外文件,也需要放入 用户文件夹
下,才能被配置文件正确使用
自定义 Rime 的全局配置
menu
可配置项:
page_size
:每页个数,默认 5,允许 1~9
该项可在每个输入方案中单独设置
示例:
menu:
page_size: 8
schema_list
可配置项:
schema
:每一项schema
对应一项方案的schema_id
示例:
schema_list:
- schema: luna_pinyin
- schema: luna_pinyin_simp
- schema: luna_pinyin_fluency
- schema: bopomofo
- schema: bopomofo_tw
- schema: cangjie5
- schema: stroke
- schema: terra_pinyin
switcher
可配置项:
caption
:切换器被调用时屏幕显示的名字hotkeys
:切换器调用的快捷键abbreviate_options
:fold_options
:option_list_separator
:save_options
:
示例:
switcher:
abbreviate_options: true
caption: "〔方案選單〕"
fold_options: true
hotkeys:
- "Alt+Shift+Control+grave"
- "Control+grave"
option_list_separator: "/"
save_options:
- full_shape
- ascii_punct
- simplification
- extended_charset
- zh_hant
- zh_hans
- zh_hant_tw
自定义 Rime 的输入法方案
Rime 输入方案主要分为三部分
schema
:关于整个输入方案的信息阐述switches
:可以切换的开关,比如切换全半角,切换简繁体engine
:Rime 的核心配置,配置整个 Rime 是如何进行运作
特殊说明:
输入方案的某些细项设置是可以写在全局设置中,比如
key_binder
punctuator
ascii_composer
recognizer
在输入方案中设置 menu/page_size
是可以的
schema
可配置项:
name
:方案的显示名称〔即出现于方案选单中,通常为中文〕schema_id
:方案内部名,在代码中引用此方案时的名称,通常由英文,数字,下划线组成author
:方案作者。如果您对方案做出了修改,请保留原作者名,放入自己的名字加在后面description
:简要描述方案历史,码表来源,该方案规则等dependencies
:如果本方案依赖于其他方案〔通常来说会依赖其他方案做为反查,抑或是两种或多种方案混用时]version
:版本号,在发布新版前请确保已升版本号
示例:小鹤双拼
schema:
name: "小鶴雙拼"
schema_id: double_pinyin_flypy
author:
- "double pinyin layout by 鶴"
- "Rime schema by 佛振 <[email protected]>"
description: |
朙月拼音+小鶴雙拼方案。
dependencies:
- stroke
version: 0.18
switches
ascii_mode
:中英文切换开关。0 为中文,1 为英文full_shape
:全角符号/半角符号开关。默认 0 为半角,1 为全角。注意,开启全角时英文字母亦为全角。extended_charset
:字符集开关。0 为 CJK 基本字符集,1 为 CJK 全字符集。仅table_translator
可用ascii_punct
:中西文标点切换开关,0 为中文句读,1 为西文标点。simplification
:是转化字开关。一般情況下与上同,0 为不开启转化,1 为转化。simplification
选项名称可自定义,亦可添加多套替換用字方案:- name: zh_cn states: ["漢字", "汉字"] reset: 0
或
- options: [ zh_trad, zh_cn, zh_mars ] states: - 字型 → 漢字 - 字型 → 汉字 - 字型 → 䕼茡 reset: 0
name/options
:須与engine
中simplifier
的option_name
相同switches: - name: zh_simp reset: 1 states: [ 漢字, 汉字 ] simplifier: option_name: zh_simp
states
:可不写,如不写则此开关存在但不可见,可由快捷鍵操作reset
:设定开关默认状态〔若 reset 为空,则使用上次状态〕
字符集过滤。此选项沒有默认名称,須配合
charset_filter
使用。可單用,亦可添加多套字符集
示例:
switches:
- name: ascii_mode
reset: 0
states: ["中文", "西文"]
- name: full_shape
states: ["半角", "全角"]
- name: extended_charset
states: ["通用", "增廣"]
- name: simplification
states: ["漢字", "汉字"]
- name: ascii_punct
states: ["句讀", "符號"]
engine
Rime 的核心原理是通过 enagine 下的 4 大组件对用户输入进行处理,4 大组件分别是:
Processors
Segmentors
Translators
Filters
整个流程为:
Processors
下的各个processor
对用户的输入(即按下键盘的哪一个键)依次进行处理,将按键按照预设的规则对按键进行响应- 不处理:Rime 不对该按键做任何响应,使用系统默认操作
- 特殊操作:比如
Enter
上屏,切换输入方案、组合键等 - 输入候选:该按键是需要转换为文字的按键,比如
123abc
,将该按键字符存入【输入码】上下文
- 当【输入码】上下文改变时,
Segmentors
下的segmentor
会将当前输入码根据格式分段,各自打上标签。比如【朙月拼音】中,输入码2012nian\
,划分为三个编码段:2012
(贴number
标签)、nian
(贴abc
标签)、\
(贴punct
标签)。 - 顾名思义,
Translators
完成由编码到文字的翻译。但有几个要点:- 翻译的对象是划分好的一个代码段。
- 某个
translator
组件往往只翻译具有特定标签的代码段。 - 翻译的结果可能有多条,每条结果成为一个展现给用户的候选项。
- 代码段可由几种
translator
分别翻译、翻译结果按一定规则合并成一列候选。 - 候选项所对应的编码未必是整个代码段。用拼音敲一个词组时,词组后面继续列出单字候选,即是此例。
- 翻译完成后,由
Filters
对所有翻译结果进行处理,比如去重
示例:
engine:
processors:
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
segmentors:
- ascii_segmentor
- matcher
- abc_segmentor
- punct_segmentor
- fallback_segmentor
translators:
- punct_translator
- script_translator
- "table_translator@custom_phrase"
filters:
- "simplifier@emoji_suggestion"
- "simplifier@zh_simp"
- uniquifier
- single_char_filter
Processors
ascii_composer
:处理英文模式及中英文切换recognizer
:与matcher
搭配,处理符合特定规则的输入码,如网址,反查等key_binder
:在特定条件下将按键绑定到其他按键,如重定义逗号,句号为预设翻页,开关快捷键等
处理某些自定义的组合键speller
:拼写处理器,接受字符按键,编辑输入
处理自定义的键,通常为 26 个英文字母punctuator
:句读处理器,将个别字符按键直接映射为标点符号或文字
处理句读键、数字键selector
:选字处理器
处理数字键、上下方向键、PageUp
、PageDown
navigator
:处理输入栏内的光标移动
处理左右方向键、Home
、End
express_editor
:编辑器
处理空格、回车、回退键
不常用:
fluid_editor
:句式编辑器,用于以空格断开词,回车上屏的【注音】,【语句流】等输入方案,与express_editor
互斥,也可以写作fluency_editor
chord_composer
:和弦作曲家或曰并击处理器,用于【宫保拼音】等多键并击的输入方案lua_processor
:使用 lua 自定义按键,后接@lua函数名
- lua 函数名即用户文件夹内 rime.lua 中函数名,参数为(key, env)
recognizer
可配置项:
import_preset
:从外部文件导入patterns
:配合segmentor
的 prefix 和 suffix 完成段落划分、tag 标记
示例:
recognizer:
import_preset: default
patterns:
code: "[a-zA-Z]+(*$"
email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
html: "^<[a-z]+>$"
punct: "^/([a-z]+|[0-9]0?)$"
uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]{1,10}[.:_-].*$"
key_binder
可配置项:
import_preset
:从外部文件导入bindings
:设置组合键的映射
每一条binding
中包含字段:accept
:键盘输入的按键when
:作用条件send
:实际调用的按键toggle
:切换开关,和send
不共存
accept
和 send
作用的键,需要输入 Ibus 风格的键名:
Mac 只支持 Alt/Option 键,不支持Command键,详见
Shift_L 左Shift
Shift_R 右Shift
Control_L 左Ctrl
Control_R 右Ctrl
Alt_L 左Alt
Alt_R 右Alt
# 在 windows 是 windows 键
Meta_L 左Meta
Meta_R 右Meta
Super_L 左Super
Super_R 右Super
Hyper_L 左Hyper
Hyper_R 右Hyper
BackSpace 退格
Tab 制表符
Caps_Lock 大写键
Linefeed 换行
Clear 清除
Return 回车
Pause 暂停
Escape Esc退出
Delete 刪除
Home Home
Left 左箭头
Up 上箭头
Right 右箭头
Down 下箭头
Prior 上翻
Page_Up 上翻
Next 下翻
Page_Down 下翻
space 空格
Sys_Req
End 末位
Begin 始位
Shift_Lock 上檔鎖
Scroll_Lock 滚动锁
Num_Lock 小键盘锁
Select 选择
Print 打印
Execute 执行
Insert 插入
Undo 还原
Redo 重做
Menu 菜单
Find 寻找
Cancel 取消
Help 帮助
Break 中断
grave `
asciitilde ~
exclam !
at @
numbersign #
dollar $
percent %
ampersand &
asciicircum ^
asterisk *
parenleft (
parenright )
underscore _
minus -
plus +
equal =
bracketleft [
bracketright ]
braceleft {
braceright }
bar |
slash /
backslash \
semicolon ;
colon :
apostrophe '
quotedbl "
comma ,
period .
less <
greater >
question ?
KP_Space 小键盘空格
KP_Tab 小键盘制表符
KP_Enter 小键盘回车
KP_Delete 小键盘刪除
KP_Home 小键盘原位
KP_Left 小键盘左箭头
KP_Up 小键盘上箭头
KP_Right 小键盘右箭头
KP_Down 小键盘下箭头
KP_Prior 小键盘上翻
KP_Page_Up 小键盘上翻
KP_Next 小键盘下翻
KP_Page_Down 小键盘下翻
KP_End 小键盘末位
KP_Begin 小键盘始位
KP_Insert 小键盘插入
KP_Equal 小键盘等于
KP_Multiply 小键盘乘号
KP_Add 小键盘加号
KP_Subtract 小键盘減号
KP_Divide 小键盘除号
KP_Decimal 小键盘小数点
KP_0 小键盘0
KP_1 小键盘1
KP_2 小键盘2
KP_3 小键盘3
KP_4 小键盘4
KP_5 小键盘5
KP_6 小键盘6
KP_7 小键盘7
KP_8 小键盘8
KP_9 小键盘9
示例:
key_binder:
bindings:
- {accept: minus, send: Page_Up, when: paging}
- {accept: equal, send: Page_Down, when: has_menu}
- {accept: bracketleft, send: Page_Up, when: paging}
- {accept: bracketright, send: Page_Down, when: has_menu}
- {accept: 9, send: Page_Up, when: paging}
- {accept: 0, send: Page_Down, when: has_menu}
- {accept: semicolon, send: 2, when: has_menu}
- {accept: apostrophe, send: 3, when: has_menu}
speller
可配置项:
alphabet
:设置本speller
需要监听的键initials
:设置哪些键仅在开头的时候才需要监听finals
:设置哪些键仅在末尾的时候才需要监听delimiter
:分词符algebra
:Rime 核心的拼写运算规则,所有algebra
算出的规则最后写入prism
max_code_length
:行码最大码長,超过则自动顶字上屏〔number
〕auto_select
:是否开启自动上屏〔true
或false
〕auto_select_pattern
:自动上屏规则(正则),当输入码匹配正则时自动顶字上屏。use_space
:空格是否可作为输入码〔true
或false
〕
punctuator
可配置项:
import_preset
:从外部文件导入half_shape
:半角模式下的句读映射
每条选项可以设置上屏模式- 默认:选项模式
commit
:直接上屏pair
:交替上屏
full_shape
:全角模式下的句读映射
同half_shape
可设置上屏模式use_space
:是否使用空格顶字〔true
或false
〕
示例:
punctuator:
# 标点及特殊表情,引入 symbols 文件
import_preset: symbols
# 覆盖 symbols 文件对应 key
symbols:
"/dn": [⌘, ⌥, ⇧, ⌃, ⎋, ⇪, , ⌫, ⌦, ↩︎, ⏎, ↑, ↓, ←, →, ↖, ↘, ⇟, ⇞]
"/fh": [ ©, ®, ℗, ℠, ™, ℡, ⓘ, ♂, ♀, ☉, ☊, ☋, ☌, ☍, ☐, ☑︎, ☒, ☜, ☝, ☞, ☟, ✎, ✄, ♲, ♻, ⚐, ⚑, ⚠]
"/xh": [ *, ×, ✱, ★, ☆, ✩, ✧, ❋, ❊, ❉, ❈, ❅, ✿, ✲]
half_shape:
"`": "·"
"~": "~"
"@": "@"
"#": "#"
"$": ["¥", "$", "€", "£", "¢", "¤"]
"%": "%"
"^": "……"
"*": ["*", "×", "·", "・", "※", "*", "❂"]
"_": "——"
"=": "="
'\': "、"
"'":
pair:
- "‘"
- "’"
"|": "|"
"(": "("
")": ")"
"[": "【"
"]": "】"
"{": "「"
"}": "」"
"<": "《"
">": "》"
"/": ["/", "÷"]
Segmentors
ascii_segmentor
:标识英文段落〔例如在英文模式下〕字母直接上屛matcher
:配合recognizer
标识符合特定规则的段落,如网址,反查等,加上特定 tagabc_segmentor
:标识常规的文字段落,加上abc
这个默认tagpunct_segmentor
:标识句读段落〔键入标点符号用〕加上 punct 这个tagfallback_segmentor
:标识其他未标识段落affix_segmentor
:用户自定义 tag- 可加载多个实例,后接
@tag名
- 可加载多个实例,后接
不常用:
lua_segmentor
使用lua自定义切分,后接@lua函数名
Translators
table_translator
:编码表翻译器,用于仓颉,五笔等基于编码表的输入方案- 可加载多个实例,后接
@翻译器名
〔如:cangjie,wubi等〕
- 可加载多个实例,后接
script_translator
:脚本翻译器,用于拼音,粤拼等基于音节表的输入方案- 可加载多个实例,后接
@翻译器名
〔如:pinyin,jyutping等〕
- 可加载多个实例,后接
punct_translator
:配合punct_segmentor
转换标点符号echo_translator
:没有其他候选字时,显示输入码〔输入码可以 Shift+Enter 上屛〕
不常用:
reverse_lookup_translator
:反查翻译器,用另一种种编码方案查码lua_translator
:使用 lua 自定义输入,例如动态输入当前日期,时间,后接@lua函数名
- lua 函数名即用户文件夹内 rime.lua 中函数名,参数为(input, seg, env)
- 可以 env.engine.context:get_option(“option_name”)方式绑定到 switch 开关/key_binder 快捷键
translator
每个输入方案有一个关于 translator
的全局设置,可设置项:
dictionary
:翻译器使用的字典名prism
:设定此翻译器的speller
生成的棱镜文件名,或此副编译器调用的棱镜名user_dict
:设定用户词典名db_class
:设定用户词典类型,可设tabledb
〔文本〕或userdb
〔二进制〕preedit_format
:上屛码自定义comment_format
:提示码自定义initial_quality
:设定此翻译器结果优先级disable_user_dict_for_patterns
:禁止某些编码录入用户词典〔true
或false
〕enable_sentence
:是否开启自动造句〔true
或false
〕enable_user_dict
:是否开启用户词典〔用户词典记录动态字词频,用户词〕〔true
或false
〕
仅 table_translator
生效:
enable_charset_filter
:是否开启字符集过滤〔cjk_minifier
启用后可适用于script_translator
〕〔true
或false
〕enable_encoder
:是否开启自动造词〔true
或false
〕encode_commit_history
:是否对已上屛词自动成词〔true
或false
〕max_phrase_length
:最大自动成词词长〔number
〕enable_completion
:提前显示尚未输入完整码的字〔true
或false
〕sentence_over_completion
:在无全码对应字而仅有逐键提示时也开启智能组句〔true
或false
〕strict_spelling
:配合 speller 中的 fuzz 规则,仅以畧拼码组词〔true
或false
〕
仅 script_translator
生效
spelling_hints
:设定多少字以内部预定标注完整带调拼音
除了 translator
项设置,其他通过 @
定义的副翻译器还可单独设置:
tag
:设定此翻译器针对的 tag。默认 abcprefix
:设定此翻译器的前缀标识,默认无suffix
:设定此翻译器的后缀标识,默认无tips
:设定此翻译器的输入前提示符,默认无closing_tips
:设定此翻译器的输入结束提示符,默认无
示例:
# tarnslator
translator:
dictionary: luna_pinyin
prism: luna_pinyin_simp
preedit_format:
- xform/([nl])v/$1ü/
- xform/([nl])ue/$1üe/
- xform/([jqxy])v/$1u/
# 副翻译器设置
custom_phrase: # 這是一個 table_translator
dictionary: ""
user_dict: custom_phrase
db_class: tabledb
enable_sentence: false
enable_completion: false
initial_quality: 1
词典与码表
translator
通过词典来翻译对应的片段,通常命名为 <词典名>.dict.yaml
词典:
- name:词典名,内部使用,可以与配套的输入方案名一致,也可不同;
- version:管理词典的版本;
- sort:词条初始排序方式,〔
by_weight
(按词频高低排序)或original
(保持原码表中的顺序)〕; - use_preset_vocabulary:选择是否导入默认词汇表【八股文】〔
true
或false
〕。
示例:
# 这里以 --- ... 分別标记出 YAML 文件的起始与结束位置
---
name: luna_pinyin
version: "0.9"
sort: by_weight
use_preset_vocabulary: true
# 在 ... 标记之后的部分就不会作为 YAML 文件來解析
...
码表,定义编码与文字的映射关系,通过制表符分割为三列:
- 文字
- 编码,如果该编码有多个音节,各音节以空格分开
- 权重,相同编码时出现在候选列表前面的几率
示例:
你 ni
我 wo
的 de 99%
的 di 1%
地 de 10%
地 di 90%
目 mu
好 hao
你我
你的
我的
我的天
天地 tian di
好天
好好地
目的 mu di
目的地 mu di di
Filters
simplifier
:简繁转换,表情转换等- 可加载多个实例,后接
@d转化器名
〔如:zh_simp、emoji_suggestion 等〕
- 可加载多个实例,后接
uniquifier
:过滤重复的候选字,有可能来自simplifier
reverse_lookup_filter
:反查滤镜,以更灵活的方式反查,Rime1.0 后替代reverse_lookup_translator
- 可加载多个实例,后接
@滤镜名
〔如:pinyin_lookup,jyutping_lookup 等〕
- 可加载多个实例,后接
charset_filter
字符集过滤- 后接
@字符集名
〔如:utf-8(无过滤),big5,big5hkscs,gbk,gb2312〕
- 后接
lua_filter
:使用 lua 自定义过滤,例如过滤字符集,调整排序,后接@lua函数名
- lua函数名即用户文件夹内rime.lua中函数名,参数为(input, env)
- 可以env.engine.context:get_option(“option_name”)方式绑定到switch开关/key_binder快捷键
仅 script_translator
:
cjk_minifier
:字符集过滤,使之支持extended_charset
开关
仅 table_translator
:
single_char_filter
:单字过滤器,如加载此组件,则屛敝词典中的词组
使用小鹤双拼
小鹤双拼原始配置文件:double_pinyin_flypy.schema.yaml
我的小鹤双拼配置 double_pinyin_flypy.schema.yaml
Mac 上如何使用 Squirrel
在 mac 上通常使用 homebrew 的方式安装 app
brew cask install squirrel
如果没有 homebrew,点击这里
Squirrel 设置项
Squirrel 配置项基于 0.14.0
整理
我的 suirrel 配置 squirrel.custom.yaml
特定程序操作 options
可配置项:
ascii_mode
:是否使用英文〔true
或false
〕vim_mode
:config_version 0.34.0
启用,是否支持使用 ESC 键退出编辑模式并切换为英文〔true
或false
〕
示例:
options:
com.apple.Xcode:
ascii_mode: true
可视化的自定义皮肤
Android 上如何使用 Trime
我的 Trime 同文配置 jiz4oh.trime.yaml
基础设置
启用输入法
将用户文件夹指向自定义配置文件所在位置
部署
使用自定义主题
其他设置
Rime 使用心得
重点(必看!)
很多人修改了方案不生效,或者新安装了 Rime,却发现无法使用,一个很重要但很容易被忽视的解决方案是:
修改方案后,一定要点击部署!!!
修改方案后,一定要点击部署!!!
修改方案后,一定要点击部署!!!- 【小狼毫】从开始菜单选择「重新部署」;或当开启托盘图标时,在托盘图标上右键选择「重新布署」;
- 【鼠须管】在系统语言文字选单中选择「重新布署」;
- 【中州韵】点击输入法状态栏(或IBus菜单)上的⟲ (Deploy) 按钮
修改方案时,强烈建议使用
<输入方案名>.custom.yaml
的方式进行,除非这个方案是你自己原创!使用
<输入方案名>.custom.yaml
修改方案时,一定要写patch
!
如何切换 Rime 输入方案
比如如果需要更换输入方案-小鹤双拼,那就需要创建 default.custom.yaml
文件,写入以下内容
# patch 一定要写
patch:
schema_list:
# 默认的明月拼音
- schema: luna_pinyin_simp
# 额外添加的小鹤双拼,前提是需要存在 double_pinyin_flypy.schema.yaml 文件,不然的话会导致无法输入字符
- schema: double_pinyin_flypy
如何修改 Rime 输入方案的配置
如果我们对默认的明月拼音方案的一些设置不满意,我们需要创建一个
luna_pinyin_simp.custom.yaml
文件。Q:为什么我要用
luna_pinyin_simp.custom.yaml
,而不是luna_pinyin_simp.schema.yaml
,我听说<输入方案名>.schema.yaml
才是输入方案的正确命名。
A:<输入方案名>.schema.yaml
确实是输入方案的正确命名方式。
A:我们使用<输入方案名>.custom.yaml
是因为原始的<输入方案名>.schema.yaml
方案(比如luna_pinyin_simp.schema.yaml
)是由他人所编写
A:我们不使用<输入方案名>.custom.yaml
而是直接修改<输入方案名>.schema.yaml
文件进行自定义,如果作者对其进行了一些更新,我们会出现两种情况:- 跟随原作者更新了
<输入方案名>.schema.yaml
文件,我们之前所做的自定义全部白费 - 不跟随更新,失去原作者新增或修复的功能
- 跟随原作者更新了
在
luna_pinyin_simp.custom.yaml
中修改# 重点!custom.yaml 必须写 patch,且在第一行并只有一个 patch: # 需要覆写的设置项 xxxx: xxxx
一个高度定制化的 Rime 配置文件结构示例:
opencc/*
:OpenCC字形转换配置及字典文件,简繁转换,emoji 转换等custom_phrase.txt
:自定义的词典default.custom.yaml
:自定义的全局设置double_pinyin_flypy.custom.yaml
:自定义的小鹤双拼输入方案设置double_pinyin_flypy.schema.yaml
:从网上下载的小鹤双拼原始输入方案luna_pinyin_simp.custom.yaml
:自定义的明月拼音输入方案设置pinyin_simp.dict.yaml
:网上下载的默认词库文件squirrel.custom.yaml
:自定义的 Squirrel 设置symbols.yaml
:额外的关于表情符号的输入配置
如何删除自造词
- 打错字后,立刻删掉是不会录入词库的。Rime 是在有新词输入时才把之前的词录入词库
- 选中已造词,使用
Shift + Delete
即可删除 - mbp 因为移除了
Delete
键,使用Shift + Fn + Backspaces
键删除
如何同步 Rime 词库
同步原理
- 点击同步按钮
- 从
installation.yaml
中获取installation_id
sync_dir
- 在
sync_dir
文件夹下生成installation_id
文件夹 - Rime 会将
用户文件夹
下所有文件写入到步骤 3中文件夹 - 根据
<词典名>.userdb/*
下的词典文件,生成一个词典快照文件<词典名>.userdb.txt
- 将快照文件内容与
sync
文件夹下其他文件夹的同名快照文件进行对比,更新当前步骤 5中词典文件 - 将更新后的快照文件放入步骤 3中文件夹
所以重点是设置 installation.yaml
中的 installation_id
和 sync_dir
installation_id
默认为随机生成的 UUIDsync_dir
默认为 用户文件夹
下的 sync
文件夹
示例:
distribution_code_name: Squirrel
distribution_name: "鼠鬚管"
distribution_version: 0.14.0
install_time: "Tue Apr 28 22:33:50 2020"
rime_version: 1.5.3
# 上面几项由 Rime 维护
installation_id: "nuc8_mac"
sync_dir: "/Users/jiz4oh/OneDrive/RimeSync"
同步进阶
知道原理之后,我们可以通过云盘来同步不同设备的词库及设置
比如使用 OneDrive
- 在 OneDrive 中设置
RimeSync
文件夹 - 将设备 A 的
sync_dir
指向 OneDrive 下RimeSync
- 将设备 B 的
sync_dir
指向 OneDrive 下RimeSync
这样就是实现了 A 和 B 的的词库同步
参考
注:本文由 Rime 鼠须管【小鹤双拼】输入方案撰写