重拾中州韵

Win 7刚开始风靡时,本人的主力码字工具还是佛振开发的开源输入法Rime 。Windows和Mac平台各有一个开发代号,分别叫「小狼毫」、「鼠须管」,当时觉得这个名字又风又雅,因为借了欧阳修《奉送原甫侍读出守永兴》的典故。

鱼枕蕉,一举十分当覆盏。
鼠须管,为物虽微情不浅。

第一次,从词库、表情到非码转换,全程都由自己手动配置。一轮下来,小命休矣。因此,当年对Rime的印象停留在技术流、不友好等标签。能坚持下来,全凭rime早期资深用户、Google大牛BYVoid2012年的竭力推荐1:

Rime全名是「中州韵输入法引擎」,它不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、双拼、注音、五笔、仓颉等所有音码和形码输入法,远比基于码表的各种「输入法生成器」优秀许多。

Rime默认提供了两个拼音输入法「朙(míng)月拼音」和「地球拼音」,两者都可以输入准确的繁体和简体,而且「地球拼音」还支持声调输入。Rime还支持了许多种方言拼音,如吴语、粤语,甚至中古汉语。

由于作者佛振精力有限,对版本维护难以周全,Rime项目在2014年12月23日后相当长一段一度停滞更新。自己因为转战Window,嫌弃小狼毫颜值不高,与这款输入法也是渐行渐远,不经意间,发现自己投奔了搜狗输入法的阵营。

4年1个月10天后,自己转战macOS,但对市面上主流输入法始终不满意,一次偶然的机会,发现万年蛰伏的鼠须管竟然更新到了0.10.0,而且折半年来更新频繁。果断删除了盗取隐私的搜狗,兜兜转转再次回到了原点,下面记述一下部署经过。

删除搜狗系列

为了彻底删除搜狗家族,建议在终端操作:

删除搜狗拼音

$ rm -rf /Library/Input\ Methods/SogouInput.app
$ rm -rf /Users/user/Library/Caches/SogouServices #把 user 替换成你的用户名
$ rm -rf /Users/user/.sogouinput #把 user 替换成你的用户名

删除搜狗五笔

$ rm -rf /Library/Input\ Methods/SogouWBInput.app
$ rm -rf /Users/user/Library/Caches/SogouServices #把 user 替换成你的用户名
$ rm -rf /Users/user/.SogouWBInput #把 user 替换成你的用户名

安装鼠须管

建议之前装过鼠须管的用户先清除残留文件,你可以用官方提供的卸载方案2,也可以在终端键入以下命令:

$ sudo rm -rf "/Library/Input Methods/Squirrel.app"
$ rm -rf ~/Library/Rime

接下来是安装,如果你已经装了home brew,那事情就简单多了,一句话搞定:

$ brew cask install squirrel

稍等片刻,系统会自动提示鼠须管已经部署成功。

快捷键

快捷键设置建议单独放在key_bindings.yaml文件里,包括Control+grave或者Control+Shift+grave等菜单功能设置选项,个人设置的日常快捷键有:

  • Ctrl + Shift + 1 #快速切换最近是用过的输入法方案
  • Ctrl + Shift + 4 #快速切换繁简
  • Ctrl + Del #一次向前删除候选栏的一个字
  • Ctrl + Space #快速切换输入法
  • Ctrl + a #相当于Home键,移动光标到编码(拼音)开头
  • Ctrl + e #相当于End,移动光标到编码(拼音)结尾
  • Ctrl + g #相当于Esc键,退出输入状态
  • Ctrl + Option + grave #快速重新部署
  • Shift + ←Shift + →#以词组为单位在编码之间移动光标
  • Tab 快速选字

快捷覆盖配置文件

为了省去繁琐的部署过程,建议直接采用拿来主义,用他人的配置文件直接覆盖~/Library/Rime下的默认设定,这里推荐几个成熟的方案:

注意:在覆盖默认配置文件之前,建议先备份一下配置文件,以防制后续折腾挂了可以轻易还原。

 $ cp -a ~/Library/Rime ~/Library/Rime_ori_$(date +%Y%m%d%H%M%S)

覆盖后点击屏幕右上角 => 鼠须管 => 重新部署,成功后会出现提示成功。

本人目前的输入方案:

  schema_list:
   - schema: wubi86_jidian          # 极点五笔,增加简繁转换
   - schema: numbers              	# 五笔大写数字快捷切换
#  - schema: muddy-pinyin           # 泥巴拼音查询
   - schema: xxm              	  	# 小兮码
   - schema: lyzm             	  	# 龙渊郑码
   - schema: pinyin-ext             # 拼音声调扩展
   - schema: luyinxing	            # Lu音形
#  - schema: xhup                   # 小鹤音形
#  - schema: chemistry              # 化学方程式
#  - schema: logic_symbols          # 逻辑符号输入辅助
#  - schema: bopomofo_symbols       # 注音符号输入辅助
#  - schema: jp_sela                # sela假名+汉字日语输入法
#  - schema: kunyomi                # 日语汉字训读
#  - schema: kana                   # kana日语
   - schema: nihongo-r              # 日语平文式罗马输入方案
#  - schema: wugniu_gninpou         # 吴语宁波话(宁波城区)
#  - schema: zyenpheng              # 中古三拼

备注:schema_list支持两种写法,这两种写法是等价的

第一种flow style:

schema_list:
   - {schema: luna_pinyin}
   - {schema: double_pinyin_flypy}

第二种block style:

schema_list:
  - schema: luna_pinyin
  - schema: double_pinyin_flypy

朙月拼音的扩展词库(大部分是繁体,简体需要用BYvoid的opencc工具转换):

name: luna_pinyin.extended
version: "2019.04.19"
sort: by_weight  #字典初始排序,可選original或by_weight
use_preset_vocabulary: true
import_tables:
  - luna_pinyin
  - luna_pinyin.sougou     #搜狗187万词胞
  - luna_pinyin.poetry     #汉语诗词
  - luna_pinyin.cn_en     #中英文
  - luna_pinyin.kaomoji     #搜狗颜文字
  - luna_pinyin.chengyusuyu     #搜狗成语俗语
  - luna_pinyin.emoji.apple     #apple颜文字
  - luna_pinyin.hanyu     #汉语大词典
  - luna_pinyin.shanghaihuadaquan     #上海话大全
  - luna_pinyin.sijixingzhenquhuadimingciku     #四级行政区划地名词库
  - luna_pinyin.mingxing     #明星词库
  - luna_pinyin.xiandaihanyuchangyongcibiao     #现代汉语常用词表
  - luna_pinyin.wangluoliuxingxinci     #网络流行新词
  - luna_pinyin.zhongguolishicihuidaquan     #中国历史词汇大全
  - luna_pinyin.shanghaishichengshixinxijingxuan     #上海市城市信息精选
  - luna_pinyin.emoji.scomper     #scomper颜文字
  - luna_pinyin.movie    #电影词汇精选
  - luna_pinyin.music    #音乐词汇精选

功能键码注释

default.custom.yaml可自定义的功能按鍵有 Caps_Lock, Shift_L, Shift_R, Control_L, control_R,但是Mac系统的Squirrel无法区分左、右,因此只有对Shift_L, Control_L的设定器作用,具体可定义的内容有

  • inline_ascii 在输入法的临时西文编辑区内输入字母、数字、符号、空格等,回车上屏后自动复位到中文
  • commit_text 已输入的候选文字上屏并切换至英文输入模式
  • commit_code 已输入的编码字符上屏并切换至英文输入模式
  • clear 输入一段字符后按此键,字符被清除,同时切换为英文输入模式

自定义界面配色

鼠须管输入法的皮肤配色配置方案位于 squirrel.custom.yaml 配置文件中,官方也提供了一些皮肤外观配置,详见 squirrel.yaml 。这里也提供本人的配色方案:

patch:
  show_notifications_when: appropriate          # 状态通知,适当,也可设为全开(always)全关(never)
  style/color_scheme: mritd_dark                # 方案命名,不能有空格
  preset_color_schemes:
    mritd_dark:
      name: 漠然/mritd dark
      author: mritd <mritd1234@gmail.com>
      horizontal: true                          # 水平排列
      inline_preedit: true                      # 单行显示,false双行显示
      candidate_format: "%c\u2005%@"            # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间。
      corner_radius: 5                          # 候选条圆角
      hilited_corner_radius: 3                  # 高亮圆角
      border_height: 6                          # 窗口边界高度,大于圆角半径才生效
      border_width: 6                           # 窗口边界宽度,大于圆角半径才生效
      border_color_width: 0
      #font_face: "PingFangSC"                   # 候选词字体
      font_point: 18                            # 候选字词大小
      label_font_point: 16                      # 候选编号大小

      text_color: 0xdedddd                      # 拼音行文字颜色,24位色值,16进制,BGR顺序
      back_color: 0x4b4b4b                      # 候选条背景色
      label_color: 0x888785                     # 预选栏编号颜色
      border_color: 0x4b4b4b                    # 边框色
      candidate_text_color: 0xffffff            # 预选项文字颜色
      hilited_text_color: 0xdedddd              # 高亮拼音 (需要开启内嵌编码)
      hilited_back_color: 0x252320              # 高亮拼音 (需要开启内嵌编码)
      hilited_candidate_text_color: 0xFFE696    # 第一候选项文字颜色
      hilited_candidate_back_color: 0x4b4b4b    # 第一候选项背景背景色
      hilited_candidate_label_color: 0xffffff   # 第一候选项编号颜色
      comment_text_color: 0xdedddd              # 拼音等提示文字颜色
      #hilited_comment_text_color: 0xdedddd      # 注解文字高亮

//我最喜欢的配色方案seraph
    Seraph:
      name: "Seraph"
      author: "Joshua <joshua7v@hotmail.com>"
      horizontal: false
      inline_preedit: true
      candidate_format: "%c\u2005%@\u2005"
      corner_radius: 3
      border_height: 5
      border_width: 7
      back_color: 0x333333 # BGR
      hilited_candidate_back_color: 0xFFFFFF
      hilited_candidate_text_color: 0x000000
      hilited_candidate_label_color: 0x000000
      font_face: "Lucida Grande"
      font_point: 20
      text_color: 0xAAAAAA
      comment_text_color: 0xDDDDDD
      label_font_face: "Lucida Grande"

# 应用程序的初始切换状态...目前已改用强大的hammerspoon的AutoIMESetting脚本
# Mac下可通过这条命令来查找程序ID名称:osascript -e 'id of app "Application_Name"'
  "com.runningwithcrayons.Alfred-3/ascii_mode": true
  "app_options/com.apple.dt.Xcode": true
  "app_options/com.runningwithcrayons.Alfred-2/ascii_mode": true
  "com.sublimetext.3/ascii_mode": false
  "com.ScooterSoftware.BeyondCompare": true
  "com.apple.Terminal/ascii_mode": true
  "com.apple.calculator/ascii_mode": true
  "app_options/org.keepassx.keepassx": true
  "app_options/vim/ascii_mode": true
  "org.vim.MacVim/ascii_mode": true
  "app_options/org.mozilla.firefox": true
  "app_options/com.apple.Safari": true
  "app_options/code-url-handler/ascii_mode": true

实际视觉效果:

如果对配色有任何不满意的,可以安装图示进行调整,这里要注意两点:

  • rime配色采用的是BGR模式,而非常见的RGB模式,取色后注意转换。
  • 注意代码的缩进对齐,如果代码不起作用,大概率是因为没有对齐。

自定义快捷字符

如果日常输入需要用到大量快捷字符,可以配置字符。在中文输入法状态下可以直接输入 /dn 、/fs、/bq等,快捷地调出特殊符号;这些字符的配置保存在luna_pinyin_simp.custom.yaml 的 punctuator 配置中,具体见这个gist

想自己DIY制作词库的,可以看这篇文章 Rime输入法—鼠须管(Squirrel)词库添加及配置

最后,提供一些词库工具和配置文章,仅供参考。


  1. 推薦一個神級輸入法——Rime ↩︎

  2. 如何卸载rime ↩︎