由于对国内输入法隐私问题的担忧,决定放弃搜狗等输入法;为了更加 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 为相应的皮肤配色名称既可
12345678910111213141516171819202122232425262728293031patch: show_notifications_when: appropriate # 状态通知,适当,也可设为全开(always)全关(never) style/color_scheme: mritd_dark # 方案命名,不能有空格 preset_color_schemes: mritd_dark: name: 漠然/mritd dark author: mritd
12345678910111213punctuator: import_preset: symbols symbols: "/fs": [½,‰,¼,⅓,⅔,¾,⅒] "/dq": [🌍,🌎,🌏,🌐,🌑,🌒,🌓,🌔,🌕,🌖,🌗,🌘,🌙,🌚,🌛,🌜,🌝,🌞,⭐,🌟,🌠,⛅,⚡,❄,🔥,💧,🌊] "/jt": [⬆,↗,➡,↘,⬇,↙,⬅,↖,↕,↔,↩,↪,⤴,⤵,🔃,🔄,🔙,🔚,🔛,🔜,🔝] "/sg": [🍇,🍈,🍉,🍊,🍋,🍌,🍍,🍎,🍏,🍐,🍑,🍒,🍓,🍅,🍆,🌽,🍄,🌰,🍞,🍖,🍗,🍔,🍟,🍕,🍳,🍲,🍱,🍘,🍙,🍚,🍛,🍜,🍝,🍠,🍢,🍣,🍤,🍥,🍡,🍦,🍧,🍨,🍩,🍪,🎂,🍰,🍫,🍬,🍭,🍮,🍯,🍼,🍵,🍶,🍷,🍸,🍹,🍺,🍻,🍴] "/dw": [🙈,🙉,🙊,🐵,🐒,🐶,🐕,🐩,🐺,🐱,😺,😸,😹,😻,😼,😽,🙀,😿,😾,🐈,🐯,🐅,🐆,🐴,🐎,🐮,🐂,🐃,🐄,🐷,🐖,🐗,🐽,🐏,🐑,🐐,🐪,🐫,🐘,🐭,🐁,🐀,🐹,🐰,🐇,🐻,🐨,🐼,🐾,🐔,🐓,🐣,🐤,🐥,🐦,🐧,🐸,🐊,🐢,🐍,🐲,🐉,🐳,🐋,🐬,🐟,🐠,🐡,🐙,🐚,🐌,🐛,🐜,🐝,🐞,🦋] "/bq": [😀,😁,😂,😃,😄,😅,😆,😉,😊,😋,😎,😍,😘,😗,😙,😚,😇,😐,😑,😶,😏,😣,😥,😮,😯,😪,😫,😴,😌,😛,😜,😝,😒,😓,😔,😕,😲,😷,😖,😞,😟,😤,😢,😭,😦,😧,😨,😬,😰,😱,😳,😵,😡,😠] "/ss": [💪,👈,👉,👆,👇,✋,👌,👍,👎,✊,👊,👋,👏,👐] "/dn": [⌘, ⌥, ⇧, ⌃, ⎋, ⇪, , ⌫, ⌦, ↩︎, ⏎, ↑, ↓, ←, →, ↖, ↘, ⇟, ⇞] "/fh": [©,®,℗,ⓘ,℠,™,℡,␡,♂,♀,☉,☊,☋,☌,☍,☑︎,☒,☜,☝,☞,☟,✎,✄,♻,⚐,⚑,⚠] "/xh": [*,×,✱,★,☆,✩,✧,❋,❊,❉,❈,❅,✿,✲]六、设置输入方案在第一次按 ⌘ + 反引号(~) 设置输入法时实际上我们可以看到很多的输入方案,而事实上很多方案我们根本用不上;想要删除和修改方案可以调整 default.custom.yaml 中的 schema_list 字段
1234567891011patch: menu: page_size: 8 schema_list: - schema: luna_pinyin_simp # 朙月拼音 简化字 - schema: luna_pinyin # 朙月拼音 - schema: luna_pinyin_fluency # 语句流# - schema: double_pinyin # 自然碼雙拼# - schema: double_pinyin_flypy # 小鹤雙拼# - schema: double_pinyin_pyjj # 拼音加加双拼# - schema: wubi_pinyin # 五笔拼音混合輸入实际上我只能用上第一个…毕竟写了好几年代码还得看键盘的人也只能这样了…
七、调整特殊键行为在刚安装完以后发现在中文输入法状态下输入英文,按 shift 键后字符上屏,然后还得回车一下,这就很让我难受…最后找到了这篇 Gist,目前将大写锁定、shift 键调整为了跟搜狗一致的配置,有需要调整的可以自行编辑 default.custom.yaml 中的 ascii_composer/switch_key 部分
12345678910# capslock 键切换英文并输出大写ascii_composer/good_old_caps_lock: true# 输入法中英文状态快捷键ascii_composer/switch_key: Caps_Lock: commit_code Control_L: noop Control_R: noop # 按下左 shift 英文字符直接上屏,不需要再次回车,输入法保持英文状态 Shift_L: commit_code Shift_R: noop八、自定义词库Rime 默认的词库稍为有点弱,我们可以下载一些搜狗词库来进行扩展;不过搜狗词库格式默认是无法解析的,好在有人开发了工具可以方便的将搜狗细胞词库转化为 Rime 的格式(工具点击这里下载);目前该工具只支持 Windows(也有些别人写的 py 脚本啥的,但是我没用),所以词库转换这种操作还得需要一个 Windows 虚拟机;
转换过程很简单,先从搜狗词库下载一系列的 scel 文件,然后批量选中,接着调整一下输入和输出格式点击转换,最后保存成一个 txt 文本
光有这个文本还不够,我们要将它塞到词库的 yaml 配置里,所以新建一个词库配置文件 luna_pinyin.sougou.dict.yaml,然后写上头部说明(注意最后三个点后面加一个换行)
12345678910111213# Rime dictionary# encoding: utf-8# 搜狗词库 目前包含如下:# IT计算机 实用IT词汇 亲戚称呼 化学品名 数字时间 数学词汇 淘宝词库 编程语言 软件专业 颜色名称 程序猿词库 开发专用词库 搜狗标准词库# 摄影专业名词 计算机专业词库 计算机词汇大全 保险词汇 最详细的全国地名大全 饮食大全 常见花卉名称 房地产词汇大全 中国传统节日大全 财经金融词汇大全---name: luna_pinyin.sougouversion: "1.0"sort: by_weightuse_preset_vocabulary: true...接着只需要把生成好的词库 txt 文件内容粘贴到三个点下面既可;但是词库太多的话你会发现这个文本有好几十 M,一般编辑器打开都会卡死,解决这种情况只需要用命令行 cat 一下就行
1cat sougou.txt >> luna_pinyin.sougou.dict.yaml最后修改 luna_pinyin.extended.dict.yaml 中的 import_tables 字段,加入刚刚新建的词库既可
123456789101112131415---name: luna_pinyin.extendedversion: "2016.06.26"sort: by_weight #字典初始排序,可選original或by_weightuse_preset_vocabulary: true#此處爲明月拼音擴充詞庫(基本)默認鏈接載入的詞庫,有朙月拼音官方詞庫、明月拼音擴充詞庫(漢語大詞典)、明月拼音擴充詞庫(詩詞)、明月拼音擴充詞庫(含西文的詞彙)。如果不需要加載某个詞庫請將其用「#」註釋掉。#雙拼不支持 luna_pinyin.cn_en 詞庫,請用戶手動禁用。import_tables: - luna_pinyin # 加入搜狗词库 - luna_pinyin.sougou - luna_pinyin.poetry - luna_pinyin.cn_en - luna_pinyin.kaomoji九、定制特殊单词由于长期撸码,24 小时离不开命令行,偶尔在中文输入法下输入了一些命令导致汉字直接出现在 terminal 上就很尴尬…这时候我们可以在 luna_pinyin.cn_en.dict.yaml 加入一些我们自己的专属词库,比如这样
123456789101112131415161718192021222324---name: luna_pinyin.cn_enversion: "2017.9.13"sort: by_weightuse_preset_vocabulary: true...git gitls lscd cdpwd pwdgit ps gitpskubernetes kuberneteskubernetes kuberkubectl kubectlkubectl kubecdocker dockerdocker dockipvs ipvsps psbash bashsource sourcesource sourm rm配置后如果我在中文输入法下输入 git 则会自动匹配 git 这个单词,避免错误的键入中文字符;需要注意的是第一列代表上屏的字符,第二列代表输入的单词,即 “当输入第二列时候选词为第一列”;两列之间要用 tag 制表符隔开,记住不是空格