基本概念
Rime 是一个输入法框架,并不是狭义上的“输入法”,而是将各种输入法的共性抽象出来的算法框架。通过不同的配置文件,Rime 可以支持多种输入方案(Schema),这个所谓的输入方案就是我们狭义上的“输入法”。比如朙月拼音输入法就是 Rime 自带的一种输入方案,另外还有比如四叶草输入法(https://github.com/fkxxyz/rime-cloverpinyin)等等。鼠须管、小狼毫、中州韵分别是 Rime 在不同操作系统下的实现程序。Rime 的配置、词库文件均使用文本方式,便于修改。所有文件均要求以 UTF-8 编码。在配置文件中,以 # 号开头表示注释。
配置文件所在的目录
Rime 有两个重要的配置目录:
共享配置目录
- 【中州韻】
/usr/share/rime-data/ - 【小狼毫】
"安裝目錄\data" - 【鼠鬚管】
"/Library/Input Methods/Squirrel.app/Contents/SharedSupport/"
用户配置目录
- 【中州韻】
~/.config/ibus/rime/(0.9.1 以下版本爲~/.ibus/rime/) - 【小狼毫】
%APPDATA%\Rime - 【鼠鬚管】
~/Library/Rime/
共享目录下放置的是 Rime 的预设配置,在软件版本更新时候,也会自动更新该目录下的文件。所以请不要修改该目录下的文件。
用户目录则放置用户自定义的配置文件。我们要做的修改都放在用户目录下。
对于鼠须管而言,用户目录初始时只有如下几个文件。
-
installion.yaml文件记录的是当前 Rime 程序的版本信息。其中有一个字段installation_id用来在同步用户词典时唯一标记当前 Rime 程序。 -
user.yaml文件记录用户的使用状态。比如上次“重新部署”的时间戳,上次选择的输入方案等。 -
build目录下放的是每次“重新部署”后生成的文件。包括字典文件编译后生成的「.bin」文件,包括与自定义配置合并后生成的各种 yaml 配置文件。 -
xxx.userdb目录下放的是对应输入方案的用户词典。即用户在使用时候选择的词组、词频等动态信息,这个目录是实时更新的。 -
sync目录是用来做用户数据同步的。每个sync/installation_id目录对应不同电脑上的 Rime 程序的用户数据。(如果你由多台电脑安装了 Rime,并设置了同步。)按照作者的说法,Rime 的用户词典同步原理是: -
手工从其他电脑复制或者从网盘自动同步 ⇒
sync/*/*.userdb.txt⇒ 合并到本地*.userdb⇒ 导出到sync/<installation_id>/*.userdb.txt。
关于调试
Rime 的日志目录放在如下为止:
- 【中州韻】
/tmp/rime.ibus.* - 【小狼毫】
%TEMP%\rime.weasel.* - 【鼠鬚管】
$TMPDIR/rime.squirrel.* - 早期版本
用户配置目录/rime.log
修改配置
如果想要修改配置,请不要直接修改原有的 xxx.yaml 文件,而是应该新建一份 xxx.custom.yaml 文件,其中 xxx 与原文件名相同。
在 .custom.yaml 文件中对于要修改的配置项,都需要放在 patch 根节点下面。
每次修改配置,都需要在鼠须管的菜单中选择“重新部署”后才能生效。
把鼠须管默认繁体改成简体
这次的目的:在 macOS 上安装鼠须管之后,第一次输入中文时默认候选是繁体。日常使用更希望默认输出简体,所以需要把当前输入方案切到 luna_pinyin_simp,也就是「朙月拼音·简化字」。
先确认鼠须管的程序和用户配置目录:
/Library/Input\ Methods/Squirrel.app
~/Library/Rime
其中 ~/Library/Rime 是用户配置目录。Finder 默认隐藏 ~/Library,可以在 Finder 里按 Command + Shift + G,输入 ~/Library/Rime 打开。
使用鼠须管自带的部署器设置当前方案:
"/Library/Input Methods/Squirrel.app/Contents/MacOS/rime_deployer" --set-active-schema luna_pinyin_simp
如果简体方案还没有显式加入用户方案列表,可以继续执行:
"/Library/Input Methods/Squirrel.app/Contents/MacOS/rime_deployer" --add-schema luna_pinyin_simp
这一步会在用户目录创建或更新 default.custom.yaml,内容类似:
patch:
schema_list:
- {schema: luna_pinyin_simp}
然后重新构建并部署用户数据:
"/Library/Input Methods/Squirrel.app/Contents/MacOS/rime_deployer" --build "$HOME/Library/Rime" "/Library/Input Methods/Squirrel.app/Contents/SharedSupport" "$HOME/Library/Rime/build"
最后让鼠须管重新加载配置:
"/Library/Input Methods/Squirrel.app/Contents/MacOS/Squirrel" --reload
可以检查 ~/Library/Rime/user.yaml,里面应当出现:
var:
previously_selected_schema: luna_pinyin_simp
修改完成后,再用鼠须管输入中文,候选词就会默认使用简体。
让鼠须管在其他软件里也默认生效
现象:在 VSCode 里已经把输入法从搜狗切换成鼠须管,但是切到其他软件后,输入法仍然默认是搜狗。
这是 macOS 的输入源记忆机制导致的。系统可以按 App 或文稿分别记住输入法,所以某个软件里切成了鼠须管,并不代表所有软件都会马上切过去。
如果希望各个软件尽量跟随当前输入法,可以关闭这个设置:
系统设置 -> 键盘 -> 文本输入 -> 输入源 -> 编辑
然后关闭:
自动切换到文稿的输入源
关闭之后,在任意 App 里把输入法切到「鼠须管 / Squirrel / Rime 简体 Hans」,其他软件通常也会跟随当前输入法。
如果希望不同软件使用不同输入法,比如 VSCode 用鼠须管,微信或浏览器继续用搜狗,也可以保留这个设置。每个软件里第一次手动切换后,macOS 会分别记住。
把中英文状态提示改成中和英
在鼠须管里按 Shift 切换中英文时,会弹出一个小窗口提示当前状态。以后可以把这个叫做「状态提示窗口」。在 Rime 配置里,更准确地说它是 ascii_mode 的状态提示。
默认的简体方案里,ascii_mode 的状态文案是:
states: [中文, 西文]
如果觉得「西文」不直观,可以在用户目录下新建或修改 luna_pinyin_simp.custom.yaml:
vim ~/Library/Rime/luna_pinyin_simp.custom.yaml
写入:
# encoding: utf-8
patch:
"switches/@0/states": [中, 英]
这里的 switches/@0 指的是方案里第一个开关,也就是 ascii_mode。两个状态分别对应中文模式和英文模式。
修改后重新部署并刷新鼠须管:
"/Library/Input Methods/Squirrel.app/Contents/MacOS/rime_deployer" --build "$HOME/Library/Rime" "/Library/Input Methods/Squirrel.app/Contents/SharedSupport" "$HOME/Library/Rime/build"
"/Library/Input Methods/Squirrel.app/Contents/MacOS/Squirrel" --reload
部署后可以检查生成文件:
sed -n '407,414p' ~/Library/Rime/build/luna_pinyin_simp.schema.yaml
看到类似下面的内容就说明生效了:
switches:
- name: ascii_mode
reset: 0
states: ["中", "英"]
修改候选词个数
Rime 默认每次出现的候选词个数为 5 个,我们可以将其修改为 1~9 之间的任意数。
在用户目录下新建一个 default.custom.yaml 文件(default.yaml 文件可以在共享配置目录下找到),写入如下内容:
patch:
"menu/page_size": 9 # 字段名加不加双引号都可以
# 或者是這樣
patch:
menu:
page_size: 8
# 但是注意这种写法是覆盖整个 menu 字段。好在默认情况下,menu 下一级也只有 page_size 字段,如果是有多个下级字段,请不要这么写。
上面的 default 文件是修改所有输入方案的候选词个数,如果只想针对某个输入方案做调整,比如对于朙月输入方案,那么只需要在用户目录下建立 luna_pinyin.custom.yaml 文件并写入如上内容,再重新部署即可。(注意,对输入方案定义文件 xxx.schema.yaml 的修改,新建的文件名只需要是 xxx.custom.yaml,并不需要加上 schema,写成 xxx.schema.custom.yaml 这样。)
使用,使用快捷键F4,然后像拼音打字选候选字一样,选择就好
输入方案的可切换状态,请参考后续的 switches 章节
主题
鼠须管的外观配置文件是 squirrel.yaml(小狼毫的外观配置文件是 weasel.yaml)。所以我们需要在用户配置目录下新建一个 squirrel.custom.yaml,参考或者拷贝开源项目的写法,通常有很多个主题,我们可以通过 style/color_scheme 来选择一个主题
> 参考: > > 鼠须管输入法配置 - 哈呜.王 (hawu.me) > > Rime Squirrel 鼠须管输入法配置详解 - 知乎 (zhihu.com)