Rime/小狼豪/鼠须管 输入法配置记
Rime?
Rime / 中州韵 是开源跨平台输入法框架,不同平台客户端不同。
- mac:鼠须管 squirrel
- windows:小狼毫 weasel
优点就不多说了,强大的自定义配置,不流氓,无广告等等等。当然,强大就意味着,想要用好它不容易。希望像搜狗一样无脑安装的就别折腾了。
折腾之前请确保自己知道什么是 yaml
并且有一个趁手的编辑器。
配置文件
内置文件是 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
- iBus:
常见的配置文件如下:
文件 | 注释 |
---|---|
default.custom.yaml | 核心配置、全局配置 |
squirrel.custom.yaml / weasel.custom.yaml | 平台相关配置。样式皮肤,不同软件默认输入法状态等。 |
<方案标识>.custom.yaml | 对预设输入方案的定制配置 |
<名称>.dict.yaml | 词典 |
custom_phrase.txt | 自定义短语 |
修改配置文件后记得重新部署才能生效。mac 上的快捷键是 Ctrl + Option + ~
。
自定义的配置项都要放在 patch
字段下,与源配置的合并规则见 wiki。
基础配置
输入简体
刚刚安装好默认情况下输入繁体中文。按下 Ctrl + ~
或 F4
打开 方案选单,选择一个输入法,再选择 漢字->汉字
就可以了。
外观设置
编辑 squirrel.custom.yaml
(windows 是 weasel.custom.yaml
)。
patch:
show_notifications_when: appropriate # 狀態通知,也可設爲全開(always)全關(never)
us_keyboard_layout: true # 键盘选项:应用美式键盘布局
style:
color_scheme: macos_light # 使用的主题 id
horizontal: true # 候选窗横向显示(现代默认输入法样式)
inline_preedit: false # 内嵌预编辑。设置为 false 可在输入法中显示候选拼音
# 整体窗口
back_color: 0xC7E5FF # 整体背景色
border_height: 0 # 整体窗口上下内边距
border_width: 5 # 整体窗口左右内边距
corner_radius: 5 # 整体窗口圆角
font_face: "xxxx" # 字体名称
font_point: 17 # 字号
# 实时输入区(组字区)仅 inline_preedit=false 时有效
text_color: 0x000000 # 已输入文字的颜色
hilited_text_color: 0xFF0000 # 编码串(待确认拼音)颜色
hilited_back_color: 0x00FF00 # 编码串(待确认拼音)背景色
# 当前选中的候选项
hilited_candidate_text_color: 0xFFFFFF # 选中候选项颜色
hilited_candidate_back_color: 0x000000 # 选中候选项背景色(高亮色)
hilited_candidate_label_color: 0xFAFF70 # 选中候选项序号颜色
hilited_comment_text_color: 0xFFFFFF # 选中候选项注解颜色
hilited_corner_radius: 5 # 选中候选项圆角
# 其他候选项
candidate_text_color: 0x000000 # 其他候选项、光标颜色
comment_text_color: 0x8193DB # 其他候选项注解颜色
label_color: 0xFF0000 # 其他候选项序号颜色
label_font_face: "xxx" # 候选编号字体
label_font_point: 13 # 候选编号大小
内置配色方案最新列表可以看代码仓库。这里有一份不完整的预览图。
inline_preedit
选项 mac 默认输入法那种对应true
,但我建议改成false
。因为有些程序会监听输入实时响应(比如实时搜索),默认的样式在用拼音打字的适合会卡卡的。
全局配置
编辑 default.custom.yaml
文件。
候选词数量
按需求修改就行。最多9,部分实现允许10。
patch:
menu/page_size: 7
方案选单热键
默认设置是 Ctrl + ~
或 F4
,其中 F4
比较容易冲突,那么可以进行修改。
热键配置是一个数组,可设置多个热键。
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_ascii | 仅 inline_preedit=true 时有效。在输入法的编辑区临时切换到英文,提交后恢复中文。 |
noop | 不执行任何操作。 |
clear | 清除已输入的编码,然后切换到英文模式。 |
还有一个特殊的选项:
patch:
ascii_composer/good_old_caps_lock: true
这个控制点击大写锁定时的行为,只有当 Caps_Lock != noop
时才有效。true
为切换大写锁定,false
则是不切换,通常用于把 Caps 当作中英切换键的场景。
注意,即使
ascii_composer/good_old_caps_lock
设置为false
,键盘上 Caps 的灯还是会亮的。
默认的配置是这样:
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 这样的配置:
patch:
ascii_composer/good_old_caps_lock: true
ascii_composer/switch_key:
Caps_Lock: noop
Shift_L: noop
Control_L: noop
如此一来就可以在右上角状态栏清晰地看到输入法状态。因为 Rime 无论是中文还是英文模式,图标是一样的,不利于观察。因此还是采用系统级的方案。
⚠️ 警告,但是此方案将导致开启 「指定程序默认进入英文模式」后无法切回中文。根据自己习惯与需求调整吧。
候选词翻页
我们设置为使用方括号键 [ ]
来翻页。
patch:
key_binder/bindings:
- when: paging
accept: bracketleft
send: Page_Up
- when: has_menu
accept: bracketright
send: Page_Down
指定程序默认进入英文模式
编辑 weasel.custom.yaml
文件。
patch:
app_options/photoshop.exe: # win 格式,全小写
ascii_mode: true
app_options/com.adobe.Photoshop: # mac 格式
ascii_mode: true
mac 下需要填写程序 id,可以在控制台执行下列代码查询:
osascript -e 'id of app "App名"'
其中 App 名 就是启动台里显示的名字。
输入方案配置
每个输入方案都有自己的一套庞大的配置。这里查看内置方案列表,打开上文内置配置文件目录可以查看完整内容。
在已有方案的基础上自定义,需要新建配置文件 name.custom.yaml
,其中 name
是方案的标识,对应关系这里有。
定制标点
对于方案「朙月拼音」,输入 {
默认会有一堆选项,要是我希望和 mac 系统输入法一样直接输入 「
呢。查看输入方案定义,发现引用了 symbols
:
punctuator:
import_preset: symbols
再看看 symbols.yaml
里面有一大堆形形色色的符号,总体上分为全角模式、半角模式与图形。其中半角模式的定义如下:
'{' : [ 『, 〖, { ]
'}' : [ 』, 〗, } ]
仿照这个模式来编写定制文件 luna_pinyin.custom.yaml
:
patch:
punctuator/half_shape:
"{": "「"
"}": "」"
当 value 是一个值时将直接输入,若是数组,哪怕只有一个元素,也会弹出候选框,例如
"{" : ["「"]
新建词典
首先这里不记录也不推荐各位疯狂导入网上的词典。因为它们很多日积月累非常庞大,包含了不少已经过时的词汇,与其说是词典,不如叫「屎山」来的贴切。Rime 在使用的过程中会逐步积累真正常用的词汇。
第一步,查看当前方案所使用的词典文件。「朙月拼音」里默认配置如下:
translator:
dictionary: luna_pinyin # <-- 这个就是使用的词典
然后建立我们自己的词典,文件名为 xxx.dict.yaml
,内容格式见 wiki 这里给出一个例子:
---
name: chenhe_pinyin
version: "1"
sort: by_weight
use_preset_vocabulary: true
import_tables:
- luna_pinyin
...
晨鹤 chen he
关键点有两个:
import_tables
里记得导入方案原来使用的词典。- 每一个条目不同字段用
Tab
分隔。部分编辑器会自动转成空格,注意!
最后编辑我们的方案定制文件 luna_pinyin.custom.yaml
,把词典改成自己创建的:
patch:
translator/dictionary: chenhe_pinyin
这样就好啦。
词典里的项目不保证显示在最前,具体顺序由词频决定。
Tips
词典的编码和词频都可以省略。若编码省略则会递归查找导入的其他词典,若词组包含多音字,那么最终会对应多个编码。
自定义短语
自定义短语与词典比较类似,但它的使用场景更窄。自定义短语里的条目会显示在最前面,一般用于非常常用的超级简拼,或快速输入。例如键入 qmail
直接输入 QQ 邮箱,或者键入 pwd
直接输入密码。
自定义短语只适用于有限的场合,不要滥用。过多内容会影响性能。大量词汇还是要用词典的。
只要新建 custom_phrase.txt
,按照下面要求输入内容就行了:
# 各字段用 tab 分隔
# 顺序为:文字 编码 权重(可省略)
# 权重越高显示越靠前
#
# 下面一行用于忽略之后所有的注释,便于输入带有 # 的短语。若不需要请删除。
# no comment
新年快乐 xnkl
配置同步
备份
需要同步的有两类数据:
- 我们自定义的配置文件。
- 日积月累形成的习惯数据。
Rime 是开源输入框架,不提供同步服务器,但是可以指定一个同步文件夹来输出数据,然后借助第三方工具(例如坚果云)来同步。
不建议使用 git。因为用户习惯数据是定期刷新的,我们无法及时提交到远程仓库。
先准备好一个空目录来同步数据,例如 /Users/chenhe/.rime_config
,然后编辑一下 installation.yaml
:
installation_id: "mac"
sync_dir: "/Users/chenhe/.rime_config"
installation_id
用于区分安装的设备,按需改名,最好不要包含中文等特殊字符。然后添加 sync_dir
字段指明同步目录。
配置好后右击 Rime 图标选择立即同步,之后可以看到新出现了一个文件夹,名字就是刚刚配置的 installation_id。
导出数据里的
userdb
和userdb.txt
是用户行为记录,通常不要人工干预。里面包含了日常输入的词汇,注意隐私安全。
关于同步的两类数据,Rime 的处理有所不同:
- 历史行为数据双向同步,自动合并。
- 用户自定义配置单向同步,不会下载或合并。
这是因为如果配置文件发生冲突,必须由人工解决才能避免出现意料之外的错误。另外不同设备不同系统的配置可能本来也不一样。
恢复
拿到一台新电脑,恢复的步骤如下:
- 安装 Rime。
- 配置第三方文件同步。
- 把同步过来的自定义配置手动复制到 Rime 配置目录,进行必要的调整,记得「重新部署」。
- 配置 Rime 自动同步。注意
installation_id
不要和已有的冲突。 - 同步。