鼠须管是一款 macOS 下的开源输入法,支持拼音、注音、仓颉、五笔等输入方案,它底层是 RIME/中州韵输入法引擎,被誉为神级输入法。我大约一两年前曾经尝试过鼠须管,但这个东西真不是那么小白友好,居然没有自带图形配置界面,简单尝试后放弃了。macOS 自带的拼音输入法不知道怎么回事,最近大半年来候选词经常出现明显的失误,前两天心血来潮遂重新捡起来鼠须管,研究了下,终于成功的并且舒服的用起来了😀


下载鼠须管后安装,注销再登录,便可以开始使用了(其实好像不重新登录也行,但安装程序提示要重新登录)。鼠须管的系统部分安装在 /Library/Input\ Methods/Squirrel.app/Contents/下面,其中 MacOS子目录下是其可执行程序,包括重要的rime-install工具,SharedSupport是其各种输入方案的配置文件。

鼠须管的用户部分安装在 $HOME/Library/Rime/ 下面:

Rime
├── build/      					### Rime 真正使用的配置文件
│   └── squirrel.yaml
├── installation.yaml
├── luna_pinyin.userdb/		###  Rime 的用户输入选词组成的词库
│   ├── 000005.ldb
│   ├── 000009.log
│   ├── CURRENT
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old
│   └── MANIFEST-000007
└── user.yaml

Ctrl-Space 切换到鼠须管输入法,其输入法菜单长下面这个样子,其中最重要的菜单是 Deploy,鼠须管的配置文件采用 YAML 格式,这个格式支持 include、patch 等特殊语法,Deploy实际就是编译原始的配置文件片段,生成最终的规范完整的 YAML 格式配置文件到 $HOME/Library/Rime/build/目录下,所以每次修改配置文件后都要记得重新 Deploy下才能生效。

Squirrel Menu

鼠须管支持大量的输入方案,按 F4或者Ctrl-` 调出输入方案列表:

Squirrel Schema

鼠须管默认使用“朙月拼音”正体中文输入法,候选菜单纵向排列,最多五个候选,上面的菜单实际翻页后还有五项,包括仓颉、五笔、地球拼音等。这里面第二项的 中/半/漢/。是特殊的,它并不是一种输入方案,而是当前输入方案的一些选项,或者开关,第一个开关是中英文切换(按左Shift切换),第二个是半角全角切换,第三个是正体字简化字切换,第四个是中英文标点切换。

对于简体中文拼音输入来说,可以使用朙月拼音・简化字或者朙月拼音然后切换简化字选项,推荐使用前者,因为它有一些特殊设定

鼠须管有一个比较特别的功能,称为 app_options,它会根据当前切换到的应用,自动设置一些选项,比如在 iTerm2 里Ctrl-Space到鼠须管,或者从其它窗口切回 iTerm2,则默认是英文输入状态,还要按一下左Shift才进入中文输入状态,这是考虑到在 iTerm2 中绝大部分时候都是只输入英文,我之前第一次用鼠须管时,还以为这是个 bug😅

鼠须管的自定义配置很简单,在 /Library/Input Methods/Squirrel.app/Contents/SharedSupport下有主要有三类配置文件:default.yaml, squirrel.yaml, XXX.schema.yaml,分别对应中州韵引擎默认配置、鼠须管默认配置、某个输入方案默认配置,修改它们的做法是在 $HOME/Library/Rime/ 下建立对应的 default.custom.yamlsquirrel.custome.yaml, XXX.custom.yaml 文件进行定制,这些自定义文件格式在官方文档定制指南里有描述。


下面是我的一点个人自定义设置,达到舒服的简体中文输入体验。

首先,按 Ctrl-`选择 朙月拼音・简化字,然后在 $HOME/Library/Rime下建立 default.custom.yamlsquirrel.custom.yaml文件:

# default.custom.yaml
# 使用九个候选词,而非默认的五个候选词
patch:
  menu/page_size: 9
# squirrel.custom.yaml
# 候选词菜单横向排列,而非默认的纵向排列;
# apathy 配色方案需要花园明朝字体以显示生僻字,在 http://fonts.jp/hanazono/
# 下载 hanazono-20170904.zip,将字体放入 ~/Library/Fonts/ 下。
patch:
  style/horizontal: true
  style/color_scheme: apathy

可以对照下各自的默认配置文件看看更多的配置选项。

接下来,在终端里使用下面命令配置颜文字(Emoji)输入,macOS 自带的拼音输入法支持这个,没有的话还是很不适应的😀

# https://github.com/rime/rime-emoji
# 为“朙月拼音・简化字”、“朙月拼音”、“朙月拼音・语句流”增加颜文字支持

/Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime-install emoji

/Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime-install \
emoji:customize:schema=luna_pinyin_simp

/Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime-install \
emoji:customize:schema=luna_pinyin

/Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime-install \
emoji:customize:schema=luna_pinyin_fluency

配置完后别忘了使用 Deploy 菜单让配置生效,然后可以体验下了:

Squirrel Emoji

朙月拼音自带的词典比较小,可以从 https://github.com/rime-aca/dictionaries 下载更丰富的词典。

如果想删除用户词典中失误记录的词组,可以高亮候选词,按 Shift+Fn+Delete删除它。

鼠须管的错误日志在 $TMPDIR/rime.Squirrel.*


最后,来点高级货。

自定义短语,比如将 wtf 替换为 怎么回事儿!:在 $HOME/Library/Rime/custom_phrase.txt 中写入三列,以制表符分隔,第一列是目标短语,第二列是缩写,第三列是可选的权重。

自定义词典,比如额外的人名列表,除了可以像 rime-aca/dictionaries 那样补充固定词典,也可以补充用户词典:编写一个 dict.txt 文件,以制表符分割的三列,第一列是词组,第二列是注音,多音节以空格分隔,第三列是权重,可以写个 1。

# 先切换到其它输入法,然后 pkill Squirrel 杀掉鼠须管进程,让其释放用户词典的锁

# 在这个目录下 --list 才能正常工作
> cd ~/Library/Rime

# 只有一个词典
> /Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime_dict_manager --list
luna_pinyin

# 导入额外的词组
> /Library/Input\ Methods/Squirrel.app/Contents/MacOS/rime_dict_manager --import \
luna_pinyin ~/dict.txt

本文参考了 「鼠须管」的调教笔记