squirrel 鼠鬚管輸入法從入門到精通

08年開始使用 MacOS 買的第一款付費軟件就是 QIM 輸入法,這些年來一直在折騰輸入法可以說 MacOS 下的所有輸入法都各種翻來覆去的折騰過了。squirrel 真的算其中最棒的。也用了幾年,期間因爲詞庫的問題換回了搜狗。今天又想折騰一下,然後看着這些配置文件,居然懵了,又要出去看一遍人家寫的各種文章。還不如自己總結一下,至少下次就不用再出去找了。

安裝

brew cask install squirrel

使用 ctrl + ` 可以呼出輸入法方案選單,切換全半角、繁體之類的。

配置

各文件功能概述

用户资料夹内的文件说明如下,♥ 號的文件,包含用戶資料,在清理文件時要注意備份:

  • default.yaml - 全局设定
  • weasel.yaml - 发行版设定
  • <方案标识>.schema.yaml - 预设输入方案副本
  • ♥ installation.yaml - 安装信息,定义配置文件保存到 Dropbox 文件夹
  • ♥ user.yaml - 用户状态信息

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

  • <方案标识>.prism.bin
  • <词典名>.table.bin
  • <词典名>.reverse.bin

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

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

以及用户自己设定的:

  • ♥ squirrel.custom.yaml - 自定义皮肤;
  • ♥ default.custom.yaml - 用户对全局设定的定制信息,设定备选词数量,定义输入方案;
  • ♥ <方案标识>.custom.yaml - 用户对预设输入方案的定制信息,定义扩充词库、加载符号库、模糊拼音;
  • ♥ 及配套的词典源文件 - 用户自制输入方案

基础配置

先刪除這些沒用的文件 cangjie5.*, luna_pinyin_fluency.*, luna_pinyin_simp.*, luna_pinyin_tw.*

default.yaml 是全局设定,不要動。新建文件 touch ~/Library/Rime/default.custom.yaml, 内容如下:

# default.custom.yaml, 全局生效
# 添加小鹤双拼到方案选单
patch:
  schema_list:
    - schema: double_pinyin_flypy # 小鹤双拼
  menu/page_size: 9 # 定制每页候选数
  # 更改切换中西文的快捷键
  ascii_composer:
    good_old_caps_lock: true
    switch_key:
      Caps_Lock: commit_code
      Control_L: noop
      Control_R: noop
      Shift_L: commit_code
      Shift_R: commit_code
  # 以方括号 “[" 和 “]” 来换页
  key_binder/bindings:
    - when: paging
      accept: bracketleft
      send: Page_Up
    - when: has_menu
      accept: bracketright
      send: Page_Down

stroke.* 相關的文件是五筆畫輸入方案,小鶴雙拼依賴它故此即便刪除這些文件,再次部署也會自動出現。所以不用管它們。

外觀設定

squirrel.yaml 是輸入法默認的外觀配置,這個文件不要動。自己想添加的配置放在 squirrel.custom.yaml 中,內容如下:

patch:
  show_notifications_when: appropriate  # 状态通知,适当(appropriate),开(always)关(never)
  style:
    color_scheme: google
    horizontal: true # 候选窗横向显示
    corner_radius: 4 # 窗口圆角半径
    border_height: 4 # 窗口边界高度,大于圆角半径才有效果
    border_width: 6 # 窗口边界宽度,大于圆角半径才有效果
    font_face: "PingFangSC-Regular,Noto Sans CJK TC" # 预选栏文字字体,使用中文字体:兰亭黑-纤黑
    font_point: 18 #预选栏文字字号
    label_font_face: "PingFangSC-Light,Myriad Pro Light" # 预选栏编号字体,使用西文字体:Myriad Pro Light
    label_font_point: 18 #预选栏编号字号

  # 關閉中文輸入
  # @see [http://code.google.com/p/rimeime/wiki/CustomizationGuide#在特定程序裏關閉中文輸入]
  #
  # Bundle Identifier c查找方法:
  # 右键『应用.app』-> 显示包内容
  # Contents/Info.plist -> BundleIdentifier
  # Bundle Identifier
  app_options/com.microsoft.VSCode:
    ascii_mode: true
  app_options/com.adobe.Reader:
    ascii_mode: true
  app_options/com.apple.Xcode:
    ascii_mode: true
  app_options/com.runningwithcrayons.Alfred-3:
    ascii_mode: true
  app_options/com.apple.spotlight:
    ascii_mode: true
  app_options/com.apple.Terminal:
    ascii_mode: true
  app_options/com.apple.Safari:
    ascii_mode: true
  app_options/com.google.Chrome:
    ascii_mode: true
  app_options/com.google.Chrome.canary:
    ascii_mode: true
  app_options/org.mozilla.firefox:
    ascii_mode: true
  app_options/com.operasoftware.Opera:
    ascii_mode: true
  app_options/com.macromates.TextMate.preview:
    ascii_mode: true
  app_options/com.sublimetext.2:
    ascii_mode: true
  app_options/com.sublimetext.3:
    ascii_mode: true
  app_options/com.github.atom:
    ascii_mode: true
  app_options/org.vim.MacVim:
    ascii_mode: true
  app_options/com.googlecode.iterm2:
    ascii_mode: true
  app_options/com.kapeli.dash:
    ascii_mode: true
  app_options/io.brackets.appshell:
    ascii_mode: true
  app_options/com.kodowa.LightTable:
    ascii_mode: true
  app_options/com.adobe.Reader:
    ascii_mode: true
  app_options/net.sourceforge.skim-app.skim:
    ascii_mode: true
  app_options/org.mozilla.aurora:
    ascii_mode: true
  app_options/org.keepassx.keepassx:
    ascii_mode: true

這裏主要修改輸入法的皮膚外觀和需要自動關閉中文輸入的 APP。

同步設定

编辑 installation.yaml 文件

sync_dir: "/Users/Victor/Dropbox/Apps/Rime"

在不同电脑间进行同步,会生成两个以 installation_id 命名的文件夹,分别存放了两者的配置。所以两者之间的配置是不会共享的,自己同步自己的。 但是用户词典是相互同步的。

詞庫

https://github.com/rime-aca/dictionaries 按照說明文件操作一下不麻煩。

自定義詞庫

我使用的是小鶴雙拼的配方,double_pinyin_flypy.custom.yaml 是一切的入口。

patch:
  # 输入双拼码的时候不转化为全拼码
  translator/preedit_format: {}
  # 載入朙月拼音擴充詞庫
  "translator/dictionary": luna_pinyin.extended

詞庫的入口是 luna_pinyin.extended.dict.yaml 然後可以按照下面的 方法 2 來配置詞庫了。

假設轉換了搜狗的動漫詞庫,命名爲 luna_pinyin.anime.dict.yaml 內容可以仿照 luna_pinyin.extended.dict.yaml

方法1:

# luna_pinyin.anime.dict.yaml
---
name: anime
version: "2015.1.10"
sort: by_weight
use_preset_vocabulary: true
import_tables:
  - luna_pinyin
  - luna_pinyin.extended
...

這是我的詞

接着需要修改 double_pinyin_flypy.custom.yaml,中將 translator/dictionary 設置成此字典檔即可,例如

patch:
  translator/dictionary: luna_pinyin.anime

方法2:

# luna_pinyin.anime.dict.yaml 這裏不導入任何詞庫
---
name: anime
version: "2015.1.10"
sort: by_weight
use_preset_vocabulary: true
...

這是我的詞

然后修改 double_pinyin_flypy.extended.dict.yaml,导入自己创建的词库。

import_tables:
  - luna_pinyin
  - luna_pinyin.hanyu
  - luna_pinyin.poetry
  - luna_pinyin.cn_en
  - luna_pinyin.anime

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

總結

  • squirrel.custom.yaml,自定义皮肤。
  • default.custom.yaml,设定备选词数量,定义输入方案。
  • double_pinyin_flypy.custom.yaml,定义扩充词库、加载符号库、模糊拼音。
    • luna_pinyin.extended.dict.yaml 扩展词库主文件,其他词库都需要在这个主文件中定义才能被调用,如果不想加载某个词库在此文件中注释掉即可(在所在行前加 # 井号)
    • luna_pinyin.cn_en.dict.yaml 英文、中英文混合短语和名词
    • luna_pinyin.hanyu.dict.yaml 汉语大词典
    • luna_pinyin.poetry.dict.yaml 唐诗宋词、千家集、楚辞、诗经
    • luna_pinyin.kaomoji.dict.yaml 颜文字表情符号
    • luna_pinyin.emoji.dict.yaml 表情符号
    • luna_pinyin.comprehensive.dict.yaml 80万词库「Rime词库扩展计划」的简体版本
    • installation.yaml,定义配置文件保存到 Dropbox 文件夹

缺少的字體

Rime 鼠须管输入法删除字体不一的生僻字

例如:𫔭、𧹒、𫔮、𢧐、𫄙

其它

Rime 其实还支持英文提示和自定义短语,但是在 Mac 下都有更好的软件来替代,所以这两个功能被我干掉了。

2021.6.20 更新

最近设区有人开源了一套配制方案用起来更简单,建议用这个。

Rime 鼠须管(Squirrel)配置方案

  1. default.custom.yaml 修改 - 用户对全局设定的定制信息,设定备选词数量,定义输入方案
    • schema_list 只保留小鹤双拼
    • 删除 繁简体切换
    • 删除 luna_pinyin_simp.schema.yaml, luna_pinyin_simp.custom.yaml
    • 删除 double_pinyin.schema.yaml, double_pinyin.custom.yaml
    • 删除 luna_pinyin.schema.yaml, luna_pinyin.custom.yaml
  2. 覆盖 installation.yaml - 安装信息,定义配置文件保存到 Dropbox 文件夹
  3. 覆盖 user.yaml - 用户状态信息
  4. 修改 squirrel.custom.yaml - 自定义皮肤
  5. 删除 custom_phrase.txt - 自定义短语

延伸閱讀

如果觉得我的文章对您有用,请在支付宝公益平台找个项目捐点钱。 @Victor Jul 16, 2018

奉献爱心