前言出于对国产输入法软件的不信任,再加上国产输入法广告太多等因素的影响,促使我想要尽快找到一个开源、快捷、不自动上传云端的输入法。
在网上搜索时,Rime 收到了一致好评,让我萌生了非常大的兴趣,故特意找到了 Rime 的相关资料并整理。
本文基于 Rime v1.5.3 版本进行整理,其他版本可能不适用。
关于 Rime什么是 RimeRime 全名是「中州韵输入法引擎」,Rime 不是一种输入法。是从各种常见键盘输入法中提炼出来的抽象的输入算法框架,由 佛振 大佬开发。Rime 通过各种输入方案来实现对几乎所有中文的支持,包括但不限于【拼音】、【注音】、【双拼】、【五笔】、【仓颉】,并且可以简单的进行【简繁】的切换
什么是输入方案Rime 由于本质只是一个框架,本身是不知道如何输入的。如果我们想要使用 Rime,就得定义一些关于如何输入的设置来告诉 Rime,这些设置就是输入方案。
Rime 的版本Rime 是一个天生跨平台的框架,在每一个平台都有对应的发行版本:
Linux:官方:ibus-rime(中州韵)第三方:fcitx-rimewindowns:官方:Weasel(小狼毫)第三方:PRIMEmacOS:官方:Squirrel(鼠须管)第三方:XIMEAndroid:第三方: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 的全局配置我的全局配置 default.custom.yaml
menu可配置项:
page_size:每页个数,默认 5,允许 1~9该项可在每个输入方案中单独设置
示例:
menu:
page_size: 8schema_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_pinyinswitcher可配置项:
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_binderpunctuatorascii_composerrecognizer在输入方案中设置 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.18switchesascii_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: 0name/options:須与 engine 中 simplifier 的 option_name 相同
switches:
- name: zh_simp
reset: 1
states: [ 漢字, 汉字 ]
simplifier:
option_name: zh_simpstates:可不写,如不写则此开关存在但不可见,可由快捷鍵操作
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: ["句讀", "符號"]engineRime 的核心原理是通过 enagine 下的 4 大组件对用户输入进行处理,4 大组件分别是:
ProcessorsSegmentorsTranslatorsFilters整个流程为:
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_filterProcessorsascii_composer:处理英文模式及中英文切换recognizer:与 matcher 搭配,处理符合特定规则的输入码,如网址,反查等key_binder:在特定条件下将按键绑定到其他按键,如重定义逗号,句号为预设翻页,开关快捷键等处理某些自定义的组合键speller:拼写处理器,接受字符按键,编辑输入处理自定义的键,通常为 26 个英文字母punctuator:句读处理器,将个别字符按键直接映射为标点符号或文字处理句读键、数字键selector:选字处理器处理数字键、上下方向键、PageUp、PageDownnavigator:处理输入栏内的光标移动处理左右方向键、Home、Endexpress_editor:编辑器处理空格、回车、回退键不常用:
fluid_editor:句式编辑器,用于以空格断开词,回车上屏的【注音】,【语句流】等输入方案,与 express_editor 互斥,也可以写作 fluency_editorchord_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 算出的规则最后写入 prismmax_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:
- "‘"
- "’"
"|": "|"
"(": "("
")": ")"
"[": "【"
"]": "】"
"{": "「"
"}": "」"
"<": "《"
">": "》"
"/": ["/", "÷"]Segmentorsascii_segmentor:标识英文段落〔例如在英文模式下〕字母直接上屛matcher:配合 recognizer 标识符合特定规则的段落,如网址,反查等,加上特定 tagabc_segmentor:标识常规的文字段落,加上 abc 这个默认tagpunct_segmentor:标识句读段落〔键入标点符号用〕加上 punct 这个tagfallback_segmentor:标识其他未标识段落affix_segmentor:用户自定义 tag可加载多个实例,后接 @tag名不常用:
lua_segmentor 使用lua自定义切分,后接 @lua函数名Translatorstable_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 diFilterssimplifier:简繁转换,表情转换等可加载多个实例,后接 @d转化器名〔如:zh_simp、emoji_suggestion 等〕uniquifier:过滤重复的候选字,有可能来自 simplifierreverse_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_idsync_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 鼠须管【小鹤双拼】输入方案撰写
RIME 官网
Rime 定製指南
Schema.yaml 詳解