Rime/小狼豪/鼠须管 输入法配置记

Rime?

Rime / 中州韵 是开源跨平台输入法框架,不同平台客户端不同。

  • mac:鼠须管 squirrel
  • windows:小狼毫 weasel

优点就不多说了,强大的自定义配置,不流氓,无广告等等等。当然,强大就意味着,想要用好它不容易。希望像搜狗一样无脑安装的就别折腾了。

折腾之前请确保自己知道什么是 yaml 并且有一个趁手的编辑器。

配置文件

官方 Wiki

内置文件是 Rime 自带的,不应该修改。否则升级后有可能丢失。位置如下:

  • mac: /Library/Input Methods/Squirrel.app/Contents/SharedSupport/
  • wind: 安裝目錄\data
  • linux: /usr/share/rime-data/

自定义的配置文件都放在「用户文件夹」里。具体位置如下:

  • mac: ~/Library/Rime
  • win: %APPDATA%\Rime
  • linux:
    • iBus: ~/.config/ibus/rime
    • Fcitx: ~/.config/fcitx/rime

常见的配置文件如下:

文件注释
default.custom.yaml核心配置、全局配置
squirrel.custom.yaml / weasel.custom.yaml平台相关配置。样式皮肤,不同软件默认输入法状态等。
<方案标识>.custom.yaml对预设输入方案的定制配置
<名称>.dict.yaml词典
custom_phrase.txt自定义短语

修改配置文件后记得重新部署才能生效。mac 上的快捷键是 Ctrl + Option + ~

自定义的配置项都要放在 patch 字段下,与源配置的合并规则见 wiki

基础配置

输入简体

刚刚安装好默认情况下输入繁体中文。按下 Ctrl + ~F4 打开 方案选单,选择一个输入法,再选择 漢字->汉字 就可以了。

外观设置

编辑 weasel.custom.yaml (windows 是 squirrel.custom.yaml)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
patch:
#  us_keyboard_layout: true      # 键盘选项:应用美式键盘布局
#  show_notifications_when: appropriate  # 狀態通知,也可設爲全開(always)全關(never)
#  style/horizontal: true        # 候选窗横向显示
#  style/inline_preedit: false    # 内嵌预编辑。设置为 false 可在输入法中显示候选拼音
#  style/font_face: "xxxx"       # 字体名称
#  style/font_point: 17          # 字号
#  style/label_font_face: "xxx"  # 候选编号字体
#  style/label_font_point: 17    # 候选编号字号
#  style/corner_radius: 10       # 窗口圆角半径
#  style/border_height: 0        # 窗口边界高度,大于圆角半径才有效果
#  style/border_width: 0         # 窗口边界宽度,大于圆角半径才有效果
#  style/color_scheme: luna      # 配色方案

内置配色方案最新列表可以看代码仓库这里有一份不完整的预览图。

inline_preedit 选项 mac 默认输入法那种对应 true,但我建议改成 false。因为有些程序会监听输入实时响应(比如实时搜索),默认的样式在用拼音打字的适合会卡卡的。

全局配置

编辑 default.custom.yaml 文件。

候选词数量

按需求修改就行。最多9,部分实现允许10。

1
2
patch:
  menu/page_size: 7

方案选单热键

默认设置是 Ctrl + ~F4 ,其中 F4 比较容易冲突,那么可以进行修改。

热键配置是一个数组,可设置多个热键。

1
2
3
patch:
  switcher/hotkeys:
    - "Control+grave"

这样就仅保留 Ctrl + ~ 了。

中英文切换

注意这里和 mac 上 Caps 切换不是一回事。Caps 实际上是切换输入法,是系统级别的。这里是输入法内部的切换。

中文切换可用的按键包括 Caps_Lock, Shift_L, Shift_R, Control_L, Control_R,mac 系统的实现由于不区分左右按钮,故 _R 结尾的 key 不可使用。

按下按钮后的动作有这几种:

value注释
commit_text提交候选区的文字,然后切换到英文模式。
commit_code提交已输入的编码(拼音字母),然后切换到英文模式。
inline_asciiinline_preedit=true 时有效。在输入法的编辑区临时切换到英文,提交后恢复中文。
noop不执行任何操作。
clear清除已输入的编码,然后切换到英文模式。

还有一个特殊的选项:

1
2
patch:
  ascii_composer/good_old_caps_lock: true

这个控制点击大写锁定时的行为,只有当 Caps_Lock != noop 时才有效。true 为切换大写锁定,false 则是不切换,通常用于把 Caps 当作中英切换键的场景。

注意,即使 ascii_composer/good_old_caps_lock 设置为 false,键盘上 Caps 的灯还是会亮的。

默认的配置是这样:

1
2
3
4
5
6
7
8
patch:
  ascii_composer/good_old_caps_lock: true
  ascii_composer/switch_key:
    Caps_Lock: commit_code
    Control_L: noop
    Control_R: noop
    Shift_L: commit_code
    Shift_R: commit_code

即:Shift 可以切换中英文模式,Caps 将正常开启大写锁定并临时切换到英文模式。

但在 mac 上,我更喜欢打开系统级选项 Caps 切换到 ABC 输入法,然后 Rime 这样的配置:

1
2
3
4
5
6
patch:
  ascii_composer/good_old_caps_lock: true
  ascii_composer/switch_key:
    Caps_Lock: noop
    Shift_L: noop
    Control_L: noop

如此一来就可以在右上角状态栏清晰地看到输入法状态。因为 Rime 无论是中文还是英文模式,图标是一样的,不利于观察。因此还是采用系统级的方案。

⚠️ 警告,但是此方案将导致开启 「指定程序默认进入英文模式」后无法切回中文。根据自己习惯与需求调整吧。

候选词翻页

我们设置为使用方括号键 [ ] 来翻页。

1
2
3
4
5
6
7
8
patch:
  key_binder/bindings:
    - when: paging
      accept: bracketleft
      send: Page_Up
    - when: has_menu
      accept: bracketright
      send: Page_Down

指定程序默认进入英文模式

编辑 weasel.custom.yaml 文件。

1
2
3
4
5
patch:
    app_options/photoshop.exe: # win 格式,全小写
      ascii_mode: true
    app_options/com.adobe.Photoshop: # mac 格式
    	ascii_mode: true

mac 下需要填写程序 id,可以在控制台执行下列代码查询:

1
osascript -e 'id of app "App名"'

其中 App 名 就是启动台里显示的名字。

输入方案配置

每个输入方案都有自己的一套庞大的配置。这里查看内置方案列表,打开上文内置配置文件目录可以查看完整内容。

在已有方案的基础上自定义,需要新建配置文件 name.custom.yaml,其中 name 是方案的标识,对应关系这里有。

定制标点

官方 Wiki

对于方案「朙月拼音」,输入 { 默认会有一堆选项,要是我希望和 mac 系统输入法一样直接输入 呢。查看输入方案定义,发现引用了 symbols

1
2
punctuator:
  import_preset: symbols

再看看 symbols.yaml 里面有一大堆形形色色的符号,总体上分为全角模式、半角模式与图形。其中半角模式的定义如下:

1
2
'{' : [ 『, 〖, { ]
'}' : [ 』, 〗, } ]

仿照这个模式来编写定制文件 luna_pinyin.custom.yaml:

1
2
3
4
patch:
  punctuator/half_shape:
    "{": "「"
    "}": "」"

当 value 是一个值时将直接输入,若是数组,哪怕只有一个元素,也会弹出候选框,例如 "{" : ["「"]

新建词典

首先这里不记录也不推荐各位疯狂导入网上的词典。因为它们很多日积月累非常庞大,包含了不少已经过时的词汇,与其说是词典,不如叫「屎山」来的贴切。Rime 在使用的过程中会逐步积累真正常用的词汇。

第一步,查看当前方案所使用的词典文件。「朙月拼音」里默认配置如下:

1
2
translator:
  dictionary: luna_pinyin # <-- 这个就是使用的词典

然后建立我们自己的词典,文件名为 xxx.dict.yaml,内容格式见 wiki 这里给出一个例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
---
name: chenhe_pinyin
version: "1"
sort: by_weight
use_preset_vocabulary: true
import_tables:
  - luna_pinyin
...

晨鹤	chen he

关键点有两个:

  1. import_tables 里记得导入方案原来使用的词典。
  2. 每一个条目不同字段用 Tab 分隔。部分编辑器会自动转成空格,注意!

最后编辑我们的方案定制文件 luna_pinyin.custom.yaml,把词典改成自己创建的:

1
2
patch:
  translator/dictionary: chenhe_pinyin

这样就好啦。

词典里的项目不保证显示在最前,具体顺序由词频决定。

Tips

词典的编码和词频都可以省略。若编码省略则会递归查找导入的其他词典,若词组包含多音字,那么最终会对应多个编码。

自定义短语

自定义短语与词典比较类似,但它的使用场景更窄。自定义短语里的条目会显示在最前面,一般用于非常常用的超级简拼,或快速输入。例如键入 qmail 直接输入 QQ 邮箱,或者键入 pwd 直接输入密码。

自定义短语只适用于有限的场合,不要滥用。过多内容会影响性能。大量词汇还是要用词典的。

只要新建 custom_phrase.txt,按照下面要求输入内容就行了:

# 各字段用 tab 分隔
# 顺序为:文字 编码 权重(可省略)
# 权重越高显示越靠前
#
# 下面一行用于忽略之后所有的注释,便于输入带有 # 的短语。若不需要请删除。
# no comment

新年快乐	xnkl

详见

配置同步

备份

需要同步的有两类数据:

  1. 我们自定义的配置文件。
  2. 日积月累形成的习惯数据。

Rime 是开源输入框架,不提供同步服务器,但是可以指定一个同步文件夹来输出数据,然后借助第三方工具(例如坚果云)来同步。

不建议使用 git。因为用户习惯数据是定期刷新的,我们无法及时提交到远程仓库。

先准备好一个空目录来同步数据,例如 /Users/chenhe/.rime_config,然后编辑一下 installation.yaml

1
2
installation_id: "mac"
sync_dir: "/Users/chenhe/.rime_config"

installation_id 用于区分安装的设备,按需改名,最好不要包含中文等特殊字符。然后添加 sync_dir 字段指明同步目录。

配置好后右击 Rime 图标选择立即同步,之后可以看到新出现了一个文件夹,名字就是刚刚配置的 installation_id。

导出数据里的 userdbuserdb.txt 是用户行为记录,通常不要人工干预。里面包含了日常输入的词汇,注意隐私安全。

关于同步的两类数据,Rime 的处理有所不同:

  • 历史行为数据双向同步,自动合并。
  • 用户自定义配置单向同步,不会下载或合并。

这是因为如果配置文件发生冲突,必须由人工解决才能避免出现意料之外的错误。另外不同设备不同系统的配置可能本来也不一样。

恢复

拿到一台新电脑,恢复的步骤如下:

  1. 安装 Rime。
  2. 配置第三方文件同步。
  3. 把同步过来的自定义配置手动复制到 Rime 配置目录,进行必要的调整,记得「重新部署」。
  4. 配置 Rime 自动同步。注意 installation_id 不要和已有的冲突。
  5. 同步。

感谢

禁止转载到私域(公众号,非自己托管的博客等),其他情况请注明原作者与可点击跳转的来源链接。