Mac 下调校 Rime
由于对国内输入法隐私问题的担忧,决定放弃搜狗等输入法;为了更加 Geek 一些,最终决定了折腾 Rime(鼠须管) 输入法,以下为一些折腾的过程
国际惯例先放点图压压惊
一、安装
安装 Rime 没啥好说的,直接从官网下载最新版本的安装包既可;安装完成后配置文件位于 ~/Library/Rime
位置;在进行后续折腾之前我建议还是先 cp -r ~/Library/Rime ~/Library/Rime.bak
备份一下配置文件,以防制后续折腾挂了还可以还原;安装完成以后按 ⌘ + 反引号(~)
切换到 朙月拼音-简化字
既可开启简体中文输入
二、乱码解决
安装完成后在打字时可能出现乱码情况(俗称豆腐块),这是由于 Rime 默认 UTF-8 字符集比较大,预选词内会出现生僻字,而 mac 字体内又不包含这些字体,从而导致乱码;解决方案很简单,下载 花园明朝 A、B 两款字体安装既可,安装后重启一下就不会出现乱码了
三、配置文件
官方并不建议直接修改原始的配置文件,因为输入法更新时会重新覆盖默认配置,可能导致某些自定义配置丢失;推荐作法是创建一系列的 patch 配置,通过类似打补丁替换这种方式来实现无感的增加自定义配置;
由于使用的是 朙月拼音-简化字
输入方案,所以需要创建 luna_pinyin_simp.custom.yaml
等配置文件,后面就是查文档 + 各种 Google 一顿魔改了;目前我将我自己用的配置放在了 Github 上,有需要的可以直接 clone 下来,用里面的配置文件直接覆盖 ~/Library/Rime
下的文件,然后重新部署既可,关于具体配置细节在下面写
四、自定义配色
皮肤配色配置方案位于 squirrel.custom.yaml
配置文件中,我的配置目前是参考搜狗输入法皮肤自己调试的;官方也提供了一些皮肤外观配置,详见 Gist;想要切换皮肤配色只需要修改 style/color_scheme
为相应的皮肤配色名称既可
1 |
|
五、增加自定义快捷字符
快捷字符例如在中文输入法状态下可以直接输入 /dn
来调出特殊符号输入;这些配置位于 luna_pinyin_simp.custom.yaml
的 punctuator
配置中,我目前自行定义了一些,有需要的可以依葫芦画瓢直接修改
1 |
|
六、设置输入方案
在第一次按 ⌘ + 反引号(~)
设置输入法时实际上我们可以看到很多的输入方案,而事实上很多方案我们根本用不上;想要删除和修改方案可以调整 default.custom.yaml
中的 schema_list
字段
1 |
|
实际上我只能用上第一个…毕竟写了好几年代码还得看键盘的人也只能这样了…
七、调整特殊键行为
在刚安装完以后发现在中文输入法状态下输入英文,按 shift
键后字符上屏,然后还得回车一下,这就很让我难受…最后找到了这篇 Gist,目前将大写锁定、shift
键调整为了跟搜狗一致的配置,有需要调整的可以自行编辑 default.custom.yaml
中的 ascii_composer/switch_key
部分
1 |
|
八、自定义词库
Rime 默认的词库稍为有点弱,我们可以下载一些搜狗词库来进行扩展;不过搜狗词库格式默认是无法解析的,好在有人开发了工具可以方便的将搜狗细胞词库转化为 Rime 的格式(工具点击这里下载);目前该工具只支持 Windows(也有些别人写的 py 脚本啥的,但是我没用),所以词库转换这种操作还得需要一个 Windows 虚拟机;
转换过程很简单,先从搜狗词库下载一系列的 scel
文件,然后批量选中,接着调整一下输入和输出格式点击转换,最后保存成一个 txt
文本
光有这个文本还不够,我们要将它塞到词库的 yaml
配置里,所以新建一个词库配置文件 luna_pinyin.sougou.dict.yaml
,然后写上头部说明(注意最后三个点后面加一个换行)
1 |
|
接着只需要把生成好的词库 txt
文件内容粘贴到三个点下面既可;但是词库太多的话你会发现这个文本有好几十 M,一般编辑器打开都会卡死,解决这种情况只需要用命令行 cat
一下就行
1 |
|
最后修改 luna_pinyin.extended.dict.yaml
中的 import_tables
字段,加入刚刚新建的词库既可
1 |
|
九、定制特殊单词
由于长期撸码,24 小时离不开命令行,偶尔在中文输入法下输入了一些命令导致汉字直接出现在 terminal 上就很尴尬…这时候我们可以在 luna_pinyin.cn_en.dict.yaml
加入一些我们自己的专属词库,比如这样
1 |
|
配置后如果我在中文输入法下输入 git 则会自动匹配 git 这个单词,避免错误的键入中文字符;需要注意的是第一列代表上屏的字符,第二列代表输入的单词,即 “当输入第二列时候选词为第一列”;两列之间要用 tag 制表符隔开,记住不是空格