Lufs's Blog

Life feeds on negative entropy.

好用好看好玩的输入法 —— 鼠须管配置使用

Lufs's Avatar 2022-01-29 分享

  1. 1. 缘起
  2. 2. 初识
  3. 3. 安装
  4. 4. 切换
  5. 5. 定制
    1. 5.1. 全局设置
      1. 5.1.1. 输入法方案
      2. 5.1.2. 候选项数
      3. 5.1.3. 切换按键
      4. 5.1.4. Lua 选词扩展
      5. 5.1.5. 按键绑定
    2. 5.2. 输入方案
      1. 5.2.1. 输入引擎
      2. 5.2.2. 模糊音
      3. 5.2.3. 码表
      4. 5.2.4. 字符映射
    3. 5.3. 词库
      1. 5.3.1. 词库配置
      2. 5.3.2. 词库格式
      3. 5.3.3. 关于搜狗词库
      4. 5.3.4. 自定义短语
    4. 5.4. 鼠须管配置文件
      1. 5.4.1. 程序单独设置
      2. 5.4.2. 皮肤设置
      3. 5.4.3. 皮肤配置
  6. 6. 技巧
    1. 6.1. 动态命令
    2. 6.2. 备份用户数据
    3. 6.3. 删除错误词频
  7. 7. 其它
  8. 8. 碎碎念
  9. 9. 参考

Rime 系列输入法在各个平台都拥有其对应的实现,其中 macOS 平台上上是「鼠须管」输入法,对其进行配置,就会获得一个极其舒适、行云流水的个人输入体验。

TL;DR(太长不看系列)

嫌麻烦的话可以直接使用我的配置文件,具体介绍将会放在另外一篇博文 —— 我的 Rime 配置 2022

缘起

个人在 2017 年开始使用「小鹤双拼」,一路辗转波折,当我开始使用 macOS 时,我试遍了几乎所有的「大厂」输入法,但却不尽人意……甚至还有隐私问题

终于,macOS 的自带输入法在 macOS 10.14.2 加入了对小鹤双拼的支持

使用几天后,欣喜消减,macOS 自带输入法丢失词频,加上似乎不太稳定的调频,导致输入体验极其差劲,我便开始寻求新的替代品

初识

第一次接触到「鼠须管」是 macOS 自带输入法支持小鹤双拼之前,但因为其极其复杂的配置过程,搞不懂、用不惯的其他人的配置,导致我一度被「劝退」

但在之后,我又被「落格输入法」昂贵的售价劝退,硬啃着文档,借鉴着别人的配置,折腾着「鼠须管」

待到「落格输入法」降价后,我便第一时间入手了,但我发现却不如我配置好的「鼠须管」好用,毕竟自定义是真的爽啊

所以,本文将会介绍些我个人的定制过程及使用技巧,当然也包含个人正在使用的配置LufsX/rime(欢迎 Star 呀)

安装

既然要使用「鼠须管」,那肯定先要安装,这里的话提供一个个人编译的「鼠须管」,相较于原版只是合并了两个 PR,具体源码在 LufsX/squirrel,相较于正式版有几个比较大的改进,一是表情符号不在会使输入栏上下起伏了,二是支持了半透明背景

点击下载

如果以后有出新版本的话,历史文件会放在网盘
分架构的可以见网盘~

安装的话,请 右键安装程序 - 打开,否则可能无法正常打开,并且安装过程中会进行「退出登录」的操作

切换

  1. 备份原有配置(如果有的话)
  2. 下载 LufsX/rime 仓库内所有文件,如果不知道怎么下载或是下载缓慢,尽管点这个链接即可
  3. 切换到「鼠须管」,并在菜单中点击 - 用户设定…
  4. 2. 中的所有文件复制到打开的文件夹中
  5. 点击菜单栏中的 - 重新部署

注意:默认配置输入方案为 小鹤双拼,如需切换全拼可按下键盘上的 F2(或是 Fn + F2),选择 朙月拼音 即可

定制

定制推荐使用 Visual Studio Code,顺带一提,可以使用快捷键 + / 取消注释

其实嘛,Windows 下的定制与下文的定制是一样的,只是配置文件的位置不同而已

全局设置

定制文件位于 用户设定文件夹/default.custom.yaml

输入法方案

不需要的可以注释,需要额外添加的也可以通过此添加

命名规则是 lufs_flypy.schema.yaml => lufs_flypy

schema_list:
- schema: lufs_flypy # 小鹤双拼
- schema: lufs_pinyin # 朙月拼音

候选项数

可依据自己需求更改,这里是结合日常输入习惯——手指按数字键 1 - 4 比较方便而确定项数为 4 的

menu/page_size: 4 # 候选项数

切换按键

先说说个人使用习惯吧,个人是使用 CapsLock 切换中英文输入,可以实现中文使用「鼠须管」输入,西文则是使用系统自带输入法

如果不习惯 CapsLock 切换,可以按照
lotem/default.custom.yaml
样例进行定制,这里就不过多展开了

(如果输入太多错误上屏的字符,可以按下 ESC 一键清除)

ascii_composer/switch_key:
Shift_L: noop
Shift_R: commit_code # macOS 上此项无效,Windows 可用右 Shift 切换中英输入
Control_L: noop
Control_R: noop # macOS 上此项无效,Windows 上可自行定义
Caps_Lock: commit_code
Eisu_toggle: clear

Lua 选词扩展

这是源自 BlindingDark/rime-lua-select-character 的扩展,作用是打不好打的单字时,可以通过词组形式打出来,再使用默认快捷键 [] 选择词组中第一个或最后一个字上屏

如需使用 [] 翻页,或是不想使用 [] 选词,可修改为其它按键,如 , => comma. => period

key_binder/select_first_character: "bracketleft" # lua 选词快捷键,选第一个字
key_binder/select_last_character: "bracketright" # lua 选词快捷键,选最后一个字

按键绑定

这里可以设置什么键可以用来干什么,比如本配置中

  • Tab => 向下翻页
  • Shift + Tab => 向上翻页
  • = => 向下翻页
  • - => 向上翻页
  • ; => 二选
  • ' => 三选

不过 [] 无法翻页,需要 Lua 选词扩展 进行修改才能使用

key_binder/bindings: # 设置哪些键可以翻页,需要哪个取消注释即可
- { accept: "Control+k", send: "Shift+Delete", when: composing }
- { accept: Tab, send: Page_Down, when: composing } # Tab 向下翻页
- { accept: Shift+Tab, send: Page_Up, when: composing } # Shift + Tab 向上翻页
- { accept: semicolon, when: has_menu, send: 2 } # 输入时「;」二选
- { accept: apostrophe, when: has_menu, send: 3 } # 输入时「'」三选
- { accept: equal, send: Page_Down, when: composing }
- { accept: minus, send: Page_Up, when: composing }

# 失效设置,可通过关闭/更改 lua 选词快捷键恢复
- { accept: bracketleft, send: Page_Up, when: composing } # 左括号向上翻页
- { accept: bracketright, send: Page_Down, when: composing } # 右括号向下翻页

输入方案

个人主要使用的是小鹤双拼,那么我就以小鹤双拼输入方案作为例子,其文件位于 用户设定文件夹/lufs_flypy.schema.yaml

如需修改全拼方案,则将对应文件变为 用户设定文件夹/lufs_pinyin.schema.yaml

除了文中所介绍的,其它的设置一般都不推荐修改

输入引擎

一般来说不需做任何更改,但这儿可以关闭 Lua 选词扩展,删去对应注释的行或将其再次注释即可关闭

engine:
processors:
# - ascii_composer # Windows 用户请解除此行注释,否则将会无法切换到英文输入
- recognizer
- lua_processor@select_character_processor # lua 选词扩展,如需关闭请注释
- key_binder

模糊音

在此区域修改注释即可(不注释 = 打开;注释 = 关闭)

speller:
alphabet: zyxwvutsrqponmlkjihgfedcba/
delimiter: " '"
algebra:
- erase/^xx$/
- erase/^hm$/
- erase/^m$/
- erase/^n$/
- erase/^ng$/

# 模糊音区域
# 依据个人情况修改注释~

# 声母部分
# - derive/^([z])h/$1/ # zh => z
# - derive/^([z])([^h])/$1h$2/ # z => zh
# - derive/^([c])h/$1/ # ch => c
# - derive/^([c])([^h])/$1h$2/ # c => ch
# - derive/^([s])h/$1/ # sh => s
# - derive/^([s])([^h])/$1h$2/ # s => sh
# - derive/^l/n/ # l => n
# - derive/^n/l/ # n => l
#- derive/^r/l/ # r => l
#- derive/^r/y/ # r => y
#- derive/^hu$/fu/ # hu => fu
#- derive/^fu$/hu/ # fu => hu

# 韵母部分
- derive/([a])n$/$1ng/ # an => ang
- derive/([a])ng$/$1n/ # ang => an
- derive/([e])n$/$1ng/ # en => eng
- derive/([e])ng$/$1n/ # eng => en
# - derive/([i])n$/$1ng/ # in => ing
# - derive/([i])ng$/$1n/ # ing => in
# - derive/([i])an$/$1ang/ # ian => iang
# - derive/([i])ang$/$1an/ # iang => ian
# 由于小鹤双拼特性,无需 uang <=> iang

# 其它模糊音
#- derive/^hui$/fei/ # hui => fei
#- derive/^fei$/hui/ # fei => hui
#- derive/^huang$/wang/ # huang => wang
#- derive/^wang$/huang/ # wang => huang

码表

后面部分的就是小鹤双拼的码表,要是需要使用其它双拼方案,可以直接替换码表部分,非双拼用户可忽略

# 小鹤双拼码表
- derive/^([jqxy])u$/$1v/
- derive/^([aoe])([ioun])$/$1$1$2/
- xform/^([aoe])(ng)?$/$1$1$2/
- xform/iu$/Q/
- xform/(.)ei$/$1W/
- xform/uan$/R/
- xform/[uv]e$/T/
- xform/un$/Y/
- xform/^sh/U/
- xform/^ch/I/
- xform/^zh/V/
- xform/uo$/O/
- xform/ie$/P/
- xform/i?ong$/S/
- xform/ing$|uai$/K/
- xform/(.)ai$/$1D/
- xform/(.)en$/$1F/
- xform/(.)eng$/$1G/
- xform/[iu]ang$/L/
- xform/(.)ang$/$1H/
- xform/ian$/M/
- xform/(.)an$/$1J/
- xform/(.)ou$/$1Z/
- xform/[iu]a$/X/
- xform/iao$/N/
- xform/(.)ao$/$1C/
- xform/ui$/V/
- xform/in$/B/
- xlit/QWRTYUIOPSDFGHJKLZXCVBNM/qwrtyuiopsdfghjklzxcvbnm/

字符映射

这里依据个人习惯修改了部分符号,如:

  • / => /
  • ‘’ =>
  • ~ =>
  • @ => @
  • # => #
  • - => -
  • _ => ——
  • + => +
  • = => =
  • [ =>
  • ] =>
  • { =>
  • } =>

你也可以添加以 / 开头的快捷输入,如输入 /help 后会显示

f3

此时选中便会将显示的东西上屏

punctuator:
import_preset: symbols
symbols:
"/dn": [, , , , , , , , , ↩︎, , , , , , , , , ]
"/x": [, ×, , , , , , , , , , , , ]
"/sm": ["《", "》", "〈", "〉", "«", "»", "<", ">"]
"/tab": " "
"/help": [符號:/fh, 單位:/dw, 標點:/bd, 數學:/sx, 拼音:/py, 星號:/xh, 方塊:/fk, 幾何:/jh, 箭頭:/jt, 電腦:/dn, 羅馬數字:/lm, 大写羅馬數字:/lmd, 拉丁:/ld, 上標:/sb, 下標:/xb, 希臘字母:/xl, 大写希臘字母:/xld, 數字:/0到/9, 分數:/fs, いろは順:/iro, 假名:/jm或/pjm或/jmk到/jmo, 假名+圈:/jmq, 假名+半角:/jmbj, 俄語:/ey, 大写俄語:/eyd, 韓文:/hw, 韓文+圈:/hwq, 韓文+弧:/hwh, 結構:/jg, 偏旁:/pp, 康熙(部首):/kx, 筆畫:/bh, 註音:/zy, 聲調:/sd, 漢字+圈:/hzq, 漢字+弧:/hzh, 數字+圈:/szq, 數字+弧:/szh, 數字+點:/szd, 字母+圈:/zmq, 字母+弧:/zmh, 表情:/bq, 音樂:/yy, 月份:/yf, 日期:/rq, 曜日:/yr, 時間:/sj, 天干:/tg, 地支:/dz, 干支:/gz, 節氣:/jq, 象棋:/xq, 麻將:/mj, 色子:/sz, 撲克:/pk, 八卦:/bg, 八卦名:/bgm, 六十四卦:/lssg, 六十四卦名:/lssgm, 太玄經:/txj, 天體:/tt, 星座:/xz, 星座名:/xzm, 十二宮:/seg, 蘇州碼:/szm]
full_shape:
"@": "@"
half_shape:
"/": "/"
'\': "、"
"`": "`"
"~": ~
"@": "@"
"#": "#"
"-": "-"
"_": "——"
"+": "+"
"=": "="
"[": "「"
"]": "」"
"{": "『"
"}": "』"

词库

词库这个东西可是重中之重啊,直接决定了一个输入法的使用体验,这里就要介绍词库格式了

词库配置

本配置中词库配置文件位于 用户设定文件夹/extended.dict.yaml

import_tables 下便是词库文件顺序,我的小私货可以按需注释(当然,不注释也没什么影响,但万一有些人很厌恶以至于都不想看到那些词汇呢?)

词库文件导入支持相对路径,比如在 用户设定文件夹/dicts/genshin.dict.yaml 可以用 dicts/genshin 调用

import_tables:
# 覆盖词频
- dicts/simp # 最小拼音词典

- dicts/animal # 动物
- dicts/caijing # 财经
- dicts/food # 饮食
- dicts/idiom # 成语俗语
- dicts/IT # IT
- dicts/medical # 医学
- dicts/net # 网络流行语
- dicts/renmingdiming # 人名地名

# 一点点小小的私货,不需要的可以自行关闭呢
- dicts/genshin # 原神
- dicts/minecraft # Minecraft 词条
- dicts/touhou # 东方 Project

词库格式

本配置中,词库文件位于 用户设定文件夹/dicts/

这里就用 example.dict.yaml 来举例

文件开头应使用如下格式

---
name: example
version: "2022-01-29"
sort: by_weight

接下来的词库内容应按照格式 词组 + 空格 + Tab 缩进 + 空格 + 第一个字的拼音 + 空格 + 第二个字的拼音 编写,例子如下

提示:可以通过输入 /tab 来输入 Tab 缩进

你要加入词库的词	ni yao jia ru ci ku de ci
这是另外个词组或一句话 zhe shi ling wai ge ci zhu hou yi ju hua

关于搜狗词库

本配置中所使用的词库部分来源于搜狗词库

搜狗词库格式为 scel,可在 Windows 下使用 深蓝词库转化 转换为 Rime 格式

虽说 macOS 也能用,不过只有命令行,而且配置过程比较麻烦,所有还是找个用 Windows 的小伙伴帮你转化下词库吧~

注意,转化出来的词库是带有词频的,由于本配置中使用了 thunlp/THUOCL 词库及词频,所以推荐使用「搜索替换」( + F)功能将其全部删去

自定义短语

为了便于编辑而引入了 custom phrase 功能,只需编辑 用户设置文件夹/custom_phrase.txt 即可便利的进行自定义短语操作

格式为:自定义短语 + Tab 缩进 + 输入编码 (+ Tab 缩进 + 权重)

权重越大,显示越前,例子如下

自定义	diy
中州韵输入法引擎 rime 2
https://rime.im/ rime 1
Rime rime 3

f5

鼠须管配置文件

位于 用户设置文件夹/squirrel.custom.yaml

程序单独设置

本配置中不推荐使用!

app_options: {} # 清除应用默认输入法,防止无法输入中文(通过 Caps 切换中英文)

如非要用,哪我也拦不住你,单独设置格式如下

app_options:
com.microsoft.VSCode: # 应用包名
ascii_mode: true # true 默认英文,false 默认中文
scii_punct: true # true 使用西文标点,false 使用中文标点

皮肤设置

总设置如下,color_scheme 后接的是皮肤主题,可以按照后面的主题名修改来切换主题

如果你是使用我编译的版本,则输入法具有半透明的效果,不喜欢的话可以直接关掉 translucency,其它没有合 PR 的版本该设置项无影响

style:
color_scheme: ayaya
translucency: true # 背景半透明总开关,不需要关掉即可

皮肤配置

「鼠须管」的皮肤可以使用 RIME 西米 - for Squirrel 来可视化定制「鼠须管」外观,也可以使用内置皮肤,内置皮肤及效果如下

皮肤名称预览图
ayayaayaya
apathyapathy
win10-ayayawin10-ayaya
macos-lightmacos-light
macos-darkmacos-dark

如果是原始配置文件,我就拿 macos_light 来举例子,具体作用见配置注释

单独拎出来个 horizontal 配置项,该项配置若为 true 则是水平排列,若为 false 则是竖直排列,依据个人喜好定制即可

macos_light:
author: "一方<liuour@gmail.com>"
back_color: 0xFFFFFF # 候选条背景色,24位色值,16进制,BGR顺序
border_color: 0xFFFFFF # 边框色
text_color: 0x424242 # 拼音行文字颜色
hilited_back_color: 0xD75A00 # 第一候选项背景背景色
hilited_candidate_text_color: 0xFFFFFF # 第一候选项文字颜色
hilited_candidate_label_color: 0xFFFFFF # 第一候选项编号颜色
hilited_comment_text_color: 0x999999 # 注解文字高亮
hilited_text_color: 0x999999 # 高亮拼音 (需要开启内嵌编码)
candidate_text_color: 0x3c3c3c # 预选项文字颜色
comment_text_color: 0x999999 # 拼音等提示文字颜色
horizontal: true # 水平排列
inline_preedit: true # 单行显示,false双行显示
label_color: 0x999999 # 预选栏编号颜色
candidate_format: "%c\u2005%@" # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间
font_face: "PingFangSC" # 候选词编号字体
font_point: 16 # 候选文字大小
label_font_point: 13 # 候选编号大小
corner_radius: 5 # 候选条圆角
hilited_corner_radius: 5 # 高亮圆角
border_height: 4 # 窗口上下高度
border_width: 4 # 窗口左右宽度
border_color_width: 0 # 输入条边框宽度

(小声说:个人前面的截图使用的字体是 lxgw/LxgwWenKai,需要手动安装其中的 Regular 字体)

技巧

动态命令

目前支持的如下

输入输出
date2022-01-29 等格式
time02:45:55 等格式
datetime2022-01-29 10:00:00 等格式
week周六星期六

备份用户数据

「鼠须管」的用户数据主是在 用户设定文件夹/example.userdb/ 下,只要将这个文件夹备份好,就可以保留一些个人输入的词频数据及一些自造词了,养好后真的特别舒服

我个人是将整个 用户设定文件夹/example.userdb/ 备份下来了

你也可以参照 说明书-同步用户数据 所述方法,通过 - 同步用户数据 来达到备份用户数据的目的

删除错误词频

将光标移动到需要删除词频的词上,按下 Shift + Fn + Delete 即可

注意,该操作仅会删除词频使其恢复原有排序,并不能从词库里彻底删除这个词

其它

更加详细的定制指南可以参照官方仓库说明书定制指南

或是 LEOYoon-Tsaw鼠须管定制指南Schema.yaml 详解

碎碎念

这玩意居然免费!

终于不用被大厂的帐号体系和广告绑架了,也不用担心隐私问题(就是不想让「人」盯着的那种感觉~)

参考

本文作者 : Lufs
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议!
本文链接 : https://blog.isteed.cc/post/squirrel-customization-2022/

本文最后更新于 天前,文中所描述的信息可能已发生改变