四月,有了Mac之后……

Rime

Rime Input Method Engine · 中州韻輸入法引擎

为什么推荐呢?

鼠须管那点事儿

其实也不算啥大事儿,本来想找个速度快,能词库,能同步的输入法对我来说就足够了,很明显搜狗就满足这一点。

然而,手心候也出了Mac版,由于手机就在用手心,就试了一下。
半个月体验下来,结果很糟,会卡,词库硬伤,而且还是有点慢。

为了一个输入法把自己折腾的死去活来的,不值得。

然后被好友带入了中州韵,了解到中州韵只是个输入引擎,实际的输入法是衍生品:

  • 鼠须管(for MacOS)
  • 小狼毫(for Windows)

关于“鼠须管”这个名字的由来,可以看看这里,还有就是中州韵的命名由来

安装

在Mac里装东西,一向让人省心。一句命令解决的事情,不用多解释了:

1
brew cask install squirrel

找zip包?在这里

neolee/SCU 是由 Neo Lee 开发的图形化配置工具。

配置

Rime 输入方案贵在原创。

不止于拼音、注音、仓颉、速成、五笔、双拼、粤拼、吴语、中古汉语拼音、五笔画、Emoji、国际音标、宫保拼音……

读《方案设计书》,亲手来创作,把输入法变成理想的模样。

官网如是写到。

没错,这就是我选择鼠须管的主要原因:把输入法变成理想的模样

我爱Rime输入法

刚安装好,拼音输入是繁体的,按组合键 ⌃ + \ 呼出输入法方案选单(如下),切换为「汉字」就可以输入简体了

繁简切换

配置文件一览

数据文件位置

共享资料夹:/Library/Input Methods/Squirrel.app/Contents/SharedSupport/

用户资料夹:~/Library/Rime/

用户资料夹内的文件说明如下

  • 〔全局设定〕 default.yaml
  • 〔发行版设定〕 weasel.yaml
  • 〔预设输入方案副本〕 <方案标识>.schema.yaml
  • ※〔安装信息〕 installation.yaml
  • ※〔用户状态信息〕 user.yaml

编译输入方案所产生的二进制文件:

  • 〔Rime 棱镜〕 <方案标识>.prism.bin
  • 〔Rime 固态词典〕 <词典名>.table.bin
  • 〔Rime 反查词典〕 <词典名>.reverse.bin

记录用户写作习惯的文件:

  • ※〔用户词典〕 <词典名>.userdb.kct
  • ※〔用户词典快照〕 <词典名>.userdb.txt、<词典名>.userdb.kct.snapshot 见于同步文件夾

以及用户自己设定的:

  • ※〔用户对全局设定的定制信息〕 default.custom.yaml
  • ※〔用户对预设输入方案的定制信息〕 <方案标识>.custom.yaml
  • ※〔用户自制输入方案〕及配套的词典源文件

注:以上标有「※ 号」和「粗体」的文件,包含用户资料,您在清理文件时要注意备份!

一些快捷键

输入的时候删除一个音节

⌃ + ⌫⇧ + ⌫

从用户词典中删除误上屏的错词

⇧ + Fn + ⌫

Emacs 风格的编辑键

  • ↑:⌃ + p
  • ↓:⌃ + n
  • ←:⌃ + b
  • →:⌃ + f
  • 上页:⌥ + v
  • 下页:⌃ + v
  • 句首:⌃ + a
  • 句末:⌃ + e
  • 回退:⌃ + h
  • 刪除:⌃ + d
  • 清空:⌃ + g

有时候快捷键可能会用不了,那是因为其它应用首先获取了快捷键,这样输入法就不会影响你对其它软件的控制

我的配置

全局配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# squirrel.custom.yaml
patch:
# us_keyboard_layout: true #键盘选项:应用美式键盘布局
# show_notifications_when: growl_is_running #狀態通知,默認裝有Growl時顯示,也可設爲全開(always)全關(never)
style/color_scheme: demo #选择配色方案
style/horizontal: true #候选窗横向显示
# style/inline_preedit: false #关闭内嵌编码,这样就可以显示首行的拼音(MAC下不建议开启)
style/corner_radius: 3 #窗口圆角半径
style/border_height: 4 #窗口边界高度,大于圆角半径才有效果
tyle/border_width: 4 #窗口边界宽度,大于圆角半径才有效果
# style/line_spacing: 1 #候选词的行间距
# style/spacing: 5 #在非内嵌编码模式下,预编辑和候选词之间的间距
style/font_face: "Lantinghei TC Extralight" #预选栏文字字体,使用中文字体:兰亭黑-纤黑
style/font_point: 17 #预选栏文字字号
style/label_font_face: "Myriad Pro Light" #预选栏编号字体,当前为Monaco 使用默认西文字体:Myriad Pro Light
style/label_font_point: 17 #预选栏编号字号
#上述是候选栏的基本设置,确定了文字的大小和候选栏的外观样式。
#下面是“demo”样式文件的配置,主要确定候选栏颜色配置。
preset_color_schemes:
label_color: 0xf2a45a #预选栏编号颜色
back_color: 0x333333 #背景颜色
candidate_text_color: 0xb9b9b9 #非第一后选项文字颜色
comment_text_color: 0xa5a5a5 #注解文字颜色
hilited_candidate_back_color: 0x333333 #第一后选项背景颜色
hilited_candidate_text_color: 0xff7d00 #第一后选项文字颜色
hilited_comment_text_color: 0x00a5ea #注解文字高亮
hilited_text_color: 0x7fffff #拼音串高亮(需要开启内嵌编码)
text_color: 0xa5a5a5 #拼音串颜色(需要开启内嵌编码)
# 一些要默认英文输入的app
app_options/com.agilebits.onepassword4:
ascii_mode: true
app_options/com.runningwithcrayons.Alfred-3:
ascii_mode: true
app_options/com.ScooterSoftware.BeyondCompare:
ascii_mode: true
app_options/com.kapeli.dashdoc:
ascii_mode: true
app_options/com.jetbrains.datagrip:
ascii_mode: true
app_options/com.jetbrains.PhpStorm:
ascii_mode: true
app_options/com.jetbrains.pycharm:
ascii_mode: true
app_options/com.sequelpro.SequelPro:
ascii_mode: true
app_options/com.bohemiancoding.sketch3:
ascii_mode: true
app_options/com.jetbrains.WebStorm:
ascii_mode: true
app_options/org.wireshark.Wireshark:
ascii_mode: true
app_options/com.velestar.vssh.osx:
ascii_mode: true
app_options/com.hnc.Discord:
ascii_mode: true
app_options/com.apptorium.Expressions:
ascii_mode: true
app_options/org.mozilla.firefox:
ascii_mode: true
app_options/com.DanPristupov.Fork:
ascii_mode: true
app_options/com.google.Chrome:
ascii_mode: true
app_options/com.tumult.Hype2:
ascii_mode: true
app_options/com.googlecode.iterm2:
ascii_mode: true
app_options/com.lastpass.LastPass:
ascii_mode: true
app_options/com.apple.mail:
ascii_mode: true
app_options/com.apple.iChat:
ascii_mode: true
app_options/com.fotonauts.MongoHub:
ascii_mode: true
app_options/com.initex.proxifier.macosx:
ascii_mode: true
app_options/com.happenapps.Quiver:
ascii_mode: true
app_options/com.apple.reminders:
ascii_mode: true
app_options/com.apple.Safari:
ascii_mode: true
app_options/com.qiuyuzhou.ShadowsocksX-NG:
ascii_mode: true
app_options/com.tinyspeck.slackmacgap:
ascii_mode: true
app_options/com.skype.skype:
ascii_mode: true
app_options/com.spotify.client:
ascii_mode: true
app_options/pl.com.salsoft.SQLiteStudio:
ascii_mode: true
app_options/com.sublimetext.3:
ascii_mode: true
app_options/com.nssurge.surge-mac:
ascii_mode: true
app_options/com.teamviewer.TeamViewer:
ascii_mode: true
app_options/com.apple.TextEdit:
ascii_mode: true
app_options/com.tapbots.TweetbotMac:
ascii_mode: true
app_options/com.apple.Terminal:
ascii_mode: true
app_options/com.realvnc.vncviewer:
ascii_mode: true

默认配置的扩充

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# default.custom.yaml
patch:
menu/page_size: 9 #这是之前增加的候选词数量。
schema_list: #“输入选单”中激活的输入方案定义。
# - schema: terra_pinyin
- schema: luna_pinyin
# - schema: emoji
# - schema: luna_pinyin_fluency
# - schema: double_pinyin_mspy
- schema: luna_pinyin_simp
# - schema: bopomofo
# - schema: double_pinyin_flypy
#下面定义中英文切换的方式
ascii_composer/good_old_caps_lock: true
ascii_composer/switch_key:
Caps_Lock: noop
Control_L: commit_text
Control_R: commit_text
Eisu_toggle: clear
Shift_L: inline_ascii
Shift_R: inline_ascii
#下面定义“输入选单”的切换控制
switcher:
abbreviate_options: true
caption: "〔切换〕" #把默认的“方案選單”修改为了“切换”。
fold_options: true
hotkeys:
- "Control+grave" #默认方案
- "Control+Shift+grave" #默认方案
option_list_separator: "/" #以下都为默认custom.yaml文件的默认配置,copy过来就可以。
save_options:
- full_shape
- ascii_punct
- simplification
- extended_charset
关于中英文切换:

可用的按键有

  • ⇪ Caps_Lock
  • ⇧ Shift_L
  • ⇧ Shift_R
  • ⌃ Control_L
  • ⌃ Control_R

而Mac系统上的鼠须管不能区分左、右,因此只有对Shift_L, Control_L 的设定起作用。

已输入编码时按切换键,可以进一步设定输入法中西文切换的形式。

可选的临时切换策略有三种:

  • inline_ascii :在输入法的临时西文编辑区内输入字母、数字、符号、空格等,回车上屏后自动复位到中文。
  • commit_text :已输入的候选文字上屏并切换至西文输入模式。
  • commit_code :已输入的编码字符上屏并切换至西文输入模式。
  • noop :屏蔽该切换键。

我的配置就是:

  • ⇪ Caps lock键:保持系统默认配置
  • ⇧ Shift键:临时切换为英文输入,回车确认后继续保持中文输入法
  • ⌃ Control键:已经输入的汉字上屏,并切换为英文输入法。

朙月拼音・简化字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# luna_pinyin_simp.custom.yaml
patch:
# emoji支持,参见下文 “增加emoji表情输入”
engine/translators:
- punct_translator
- r10n_translator
- reverse_lookup_translator
recognizer/patterns/reverse_lookup: "`[a-z]*$"
schema/dependencies:
- emoji
abc_segmentor/extra_tags:
- reverse_lookup
reverse_lookup:
dictionary: emoji
enable_completion: false
prefix: "`"
tips: 〔表情〕
# 以方括号 “[” 和 “]” 来换页
"key_binder/bindings":
- { when: paging, accept: bracketleft, send: Page_Up }
- { when: has_menu, accept: bracketright, send: Page_Down }
# 载入朙月拼音扩充词库
"translator/dictionary": luna_pinyin.extended
# 改写拼音运算,使得含英文的字词(位于 luna_pinyin.cn_en.dict.yaml 中)不影响简拼功能(注意,此功能只适用于於朙月拼音系列方案,不适用于各类双拼方案)
# 本条补丁只在「小狼毫 0.9.30」、「鼠须管 0.9.25 」、「Rime-1.2」及更高的版本中起作用。
"speller/algebra/@before 0": xform/^([b-df-np-z])$/$1_/

增加emoji表情输入

保存,重新部署,切换到“朙月拼音”,打入反引号,然后输入“biaoqing”看看是不是出来了,如果不生效,请检查代码的对齐是不是有问题。有关emoji表情的介绍看符号表

扩充词库

词库对很多用惯了输入法的人来说,是很严重的依赖条件。Rime也有词库功能

下载扩充词库

有关搜狗核心词库(4.6 MB, 460,000词),请与我联系获得(我不会告诉你我七牛没钱了才不贴出来的

转换词库

下载词库转换工具:深蓝词库转换 for Windows

接下来的事情就很简单了,导出自己原来输入法的词库,在深蓝里转换,成Rime词库,保存为 source.txt

词库简繁转换

首先,打开终端再装一个包:OpenCC

brew install opencc

然后将你在深蓝转换好的 source.txt 丢到一个目录里,cd进去,方便繁简转换

opencc -i source.txt -o dest.txt

最后一步

转换后的词库 dest.txt ,改名为 luna_pinyin.name.dict.yaml 其中name你可以自己换了。
然后打开这个yaml词库文件,在顶头加几句话:

1
2
3
4
5
6
# luna_pinyin.name.dict.yaml
---
name: luna_pinyin.name
version: "0.0.1"
use_preset_vocabulary: true
...

name就是这个文件除了 .dict.yaml 之外的部分;

version是版本号,根据以后的发展,修改这个版本号可以方便管理;

打开 luna_pinyin.extended.dict.yaml, 找到 import_tables ,在下面加入你刚刚做好的词库:

1
- luna_pinyin.name

然后保存退出,重新载入配置文件吧!

关于搜狗词库

没错这货现存的版本,个人词库都是加密的。不过用Mac的话有个神奇而又不知道能存活多久的方法能把自己未加密的用户词库搞出来:

参照知乎用户Gary的回答: 怎样导出搜狗词库到文本?不要加密的

有关同步

在这里多说几句,为什么不直接修改而是增加一个“custom”文件呢?这个方法的好处是,这些custom的配置文件是可以放在网盘备份的,这个备份可以有三个好处:

  1. 个人的数据在自己信得过的网盘中,不会有乱七八糟的事情初现
  2. 可以让多个客户端都指向备份文件夹,这样就可以做到多端同步
  3. 版本升级,不会影响个人数据与个性化配置,一劳永逸

使用 Dropbox 同步用户资料

编辑 installation.yaml 文件,添加一行:

sync_dir: '/Users/username/Dropbox/sync/Rime'

在不同电脑间进行同步

同步机制可以理解为这样的:

比如两者的同步文件夹都为 Rime(通过 Dropbox 等同步工具同步)

在这之下就会生成两个以 installation_id 命名的文件夹,分别存放了两者的配置

所以两者之间的配置是不会共享的,自己同步自己的。

但是用户词典是相互同步的(显然需要这个功能)

尾声

嘛,有哪里写错的,欢迎在下面的评论区指正。也希望你有个懂你的输入法~

参考资料: