Awesome
Rime 鼠须管(Squirrel)朙月拼音、小鹤双拼、自然码双拼配置详解
- 欢迎加入 Rime 鼠须管电报群
- 欢迎关注 Twitter
特点
- 朙月拼音(默认)、小鹤双拼、自然码双拼
- 词库不丢失,支持多平台同步
- 百万搜狗词库
- Emoji
- 动态输入时间、日期、星期
- 速度快、开源、保护隐私、自定义强
👏 出售美国实体卡、GV、Gmail、ChatGPT、Apple ID、礼品卡 👏
安装
下载 <a href="https://rime.im/" target="_blank">鼠须管</a>,安装后切换到 Rime 输入法,开始使用。
默认繁体输出,通过组合键 Control+`
或 F4
键切换输入方案,例如选择【朙月拼音·简化字】简体输出。
注:建议 Mac 打开 Squirrel 通知,之后部署会提示是否成功。
备份初始配置(可选)
防止操作不当配置无法恢复,可以为初始配置做个备份。在【终端】中输入以下命令,按回车键,会出现一个【Rime.bak】文件夹即备份。
cp -r ~/Library/Rime ~/Library/Rime.bak
还原:初始配置【Rime】文件夹清空,将【Rime.bak】内的文件复制粘贴过去,点击菜单栏【ㄓ】-【重新部署】。
定制
- 下载 配置 解压得到【配置文件】和【花园明朝字体】,将字体安装到字体册,原因是 Mac 缺少部分生僻字。
- 点击菜单栏【ㄓ】-【用户设定】,将【配置文件】里所有文件粘贴进去,并选择覆盖。
- 点击菜单栏【ㄓ】-【重新部署】(快捷键
Control+Option+`
),至此完成定制配置,可以愉快的使用了。
全局设置
全局设置文件 default.custom.yaml
,包含输入方案、候选词个数、中英文切换、快捷键。
注:建议用 VSCode 软件打开文件,因分隔符问题还需要 <a href="https://ssnhd.com/2021/10/01/VSCode" target="_blank">修改 Tab 键</a>。
输入方案
按 Control+`
显示输入方案。如果你不用双拼或大写数字,可以将其连同配置里的文件一并删除;同理,你也可以添加其他方案,例如:五笔、地球拼音、袖珍拼音。
注:输入方案都是以
.schema.yaml
命名,例如luna_pinyin_simp.schema.yaml
,可以修改该文件进行定制,但是输入法一旦更新,这个文件也会跟着更新,定制就会丢失。
解决办法是新建文件luna_pinyin_simp.custom.yaml
,然后在里面定制,所有方案对应的补丁名都是<方案名>.custom.yaml
。
schema_list:
- schema: luna_pinyin_simp # 朙月拼音
- schema: double_pinyin_flypy # 小鹤双拼
- schema: double_pinyin # 自然码双拼
- schema: numbers # 大写数字
候选词个数
修改后面的数字更改候选词个数。
menu/page_size: 9
中英文切换
下面代码表示使用 Caps
键切换大小写,使用 Shift
键切换中英文。
ascii_composer/good_old_caps_lock: true # 若为 true, Caps 只切换大小写
ascii_composer/switch_key:
Caps_Lock: commit_code # Caps 键
Shift_L: commit_code # 左 Shift,切换中英文
Shift_R: commit_code # 右 Shift,切换中英文
Control_L: noop # 左 Control,屏蔽该切换键
Control_R: noop # 右 Control,屏蔽该切换键
注:如果 Caps 键不能切换大小写,打开 Mac 系统偏好设置 > 键盘 > 输入法 > 取消【使用大写锁定键切换“美国”输入模式】。
其他切换策略:
- inline_ascii:在输入法的临时英文编辑区内输入字母、数字、符号、空格等,回车上屏后自动复位到中文
- commit_text:已输入的候选文字上屏并切换至英文输入模式
翻页快捷键
- when:有几种状态
composing
、has_menu
、paging
- accept:控制接受的按键
minus
、equal
,、period
、comma
、bracketleft
、bracketright
- send:控制动作
Page_Up
、Page_Down
、Escape
(清空输入码)
# 翻页
- { when: has_menu, accept: Tab, send: Page_Down } # "tab" 键翻页, 和下一条 "tab" 键分词只能二选一
- { when: composing, accept: Shift+Tab, send: Shift+Left } # "Shift+Tab" 键向左选拼音分词
- { when: paging, accept: minus, send: Page_Up } # "-" 上一页
- { when: has_menu, accept: equal, send: Page_Down } # "=" 下一页
- { when: paging, accept: comma, send: Page_Up } # "," 上一页
- { when: has_menu, accept: period, send: Page_Down } # "." 下一页
- { when: paging, accept: bracketleft, send: Page_Up } # "[" 上一页
- { when: has_menu, accept: bracketright, send: Page_Down } # "]" 下一页
# 快捷键
- { when: has_menu, accept: semicolon, send: 2 } # ":" (分号)选择第 2 个候选词
- { when: has_menu, accept: apostrophe, send: 3 } # "'" (引号)选择第 3 个候选词
- { when: composing, accept: Shift+Tab, send: Shift+Left } # "Shift+Tab" 键向左选拼音分词
- { when: composing, accept: Control+a, send: Home } # "Control+a" 光标移至首
- { when: composing, accept: Control+e, send: End } # "Control+e" 光标移至尾
- { when: composing, accept: Control+g, send: Escape } # "Control+g" 清码
- { when: composing, accept: Return, send: Escape } # "Return" 回车清码
- { when: always, accept: Control+Shift+1, select: .next } # 切换输入方案
- { when: always, accept: Control+Shift+2, toggle: ascii_mode } # 中/英文切换
- { when: always, accept: Control+Shift+3, toggle: full_shape } # 全角/半角切换
- { when: always, accept: Control+Shift+4, toggle: simplification } # 繁简体切换
- { when: always, accept: Control+Shift+5, toggle: extended_charset } # 通用/增广切换(显示生僻字)
- { when: composing, accept: Control+b, send: Left } # "Control+b" 移动光标
- { when: composing, accept: Control+f, send: Right } # "Control+f" 向右选择候选词
- { when: composing, accept: Control+h, send: BackSpace } # "Control+h" 删除输入码
词库格式
新建文件命名格式为 <词库名>.dict.yaml
。
示例:朙月拼音 AV 女优词库 luna_pinyin.av.dict.yaml
。
# 日本 AV 女优
name: luna_pinyin.av # 要和文件名一致
version: "2021.12.21"
sort: by_weight
use_preset_vocabulary: false
...
# 此处空一行
三上悠亞 san shang you ya 1 # 汉字和编码用 Tab 键间隔,拼音之间用空格键
词库外挂
打开 luna_pinyin.extended.dict.yaml
,将词库名添加。
示例:AV 女优词库 luna_pinyin.av.dict.yaml
即输入 luna_pinyin.av
。
import_tables:
- luna_pinyin
- luna_pinyin.av
- luna_pinyin.chat
- luna_pinyin.sogou
词库载入
打开 luna_pinyin_simp.custom.yaml
,载入中英文词库,还可以修改英文候选词位置、Emoji 显示注释等。
patch:
# 启用罕见字過濾
engine/filters:
- simplifier
- simplifier@emoji_conversion
- uniquifier
- charset_filter@gbk # (※3) GBK 过滤
- single_char_filter
emoji_conversion:
opencc_config: emoji.json
option_name: show_emoji
tags: abc
#tips: all # Emoji 显示注释
# 改写拼写运算,含英文的词汇(luna_pinyin.cn_en.dict.yaml)不影响简拼
"speller/algebra/@before 0": xform/^([b-df-hj-np-tv-z])$/$1_/
# 载入朙月拼音扩充词库
"translator/dictionary": luna_pinyin.extended
# 加载easy_en依赖
"schema/dependencies/@1": easy_en
# 载入翻译英文的码表翻译器,取名为 english
"engine/translators/@4": table_translator@english
# english翻译器的设定项
english:
dictionary: easy_en
spelling_hints: 9
enable_completion: false # 是否启用英文输入联想补全
enable_sentence: false # 混输时不出现带有图案的英文
initial_quality: -0.5 # 英文候选词的位置, 数值越大越靠前。
模式转换
打开 luna_pinyin_simp.custom.yaml
,switches 列了:中文西文、全角半角、Emoji、简繁体、字节编码。
patch:
switches:
- name: ascii_mode # 0 中文,1 英文
reset: 0
states: ["中文", "西文"]
- name: full_shape # 全角/半角符号开关
states: ["半角", "全角"]
- name: show_emoji # Emoji 开关
reset: 1
states: [ "🈚️️\uFE0E", "🈶️️\uFE0F" ]
- name: zh_simp # (※1) 繁简转换
reset: 1
states: ["漢字", "汉字"]
- options: ["utf8", "gbk", "gb2312"] # (※2)字符集选单
reset: 0 # 默认 UTF8
states:
- UTF-8
- GBK
- GB2312
搜狗词库转换
转换方法:点击这里。本配置里的搜狗词库包含官网 12 个分类(城市、工程、农业、人文、社会、生活、艺术、医学、游戏、娱乐、运动、自然),满足绝大部份用户使用。
Emoji
打开 opencc 文件夹内 emoji_word.txt
,规则:字符用 Tab 键间隔,其他用空格键,简体和繁体都要加入。
开心 开心 😄 😃 😺
開心 開心 😄 😃 😺
按 Control + `
组合键,可以选择开启或关闭 Emoji。
快捷符号
以朙月拼音为例,打开 luna_pinyin_simp.custom.yaml
,自行添加修改。
注:打开【用户设定】-【build 文件夹】-
luna_pinyin_simp.schema.yaml
里有超多快捷符号,将需要修改的快捷符号添加到下面区域。
"/fs": [½, ‰, ¼, ⅓, ⅔, ¾, ⅒ ]
"/xh": [ *, ×, ✱, ★, ☆, ✩, ✧, ❋, ❊, ❉, ❈, ❅, ✿, ✲]
"/dq": [🌍,🌎,🌏,🌐,🌑,🌒,🌓,🌔,🌕,🌖,🌗,🌘]
"/sg": [🍇,🍉,🍌,🍍,🍎,🍏,🍑,🍒,🍓,🍗,🍦,🎂,🍺,🍻]
"/dw": [🙈,🐵,🐈,🐷,🐨,🐼,🐾,🐔,🐬,🐠,🦋]
"/bq": [😀,😁,😂,😃,😄,😅,😆,😉,😊,😋,😎,😍,😘,😗]
"/ss": [💪,👈,👉,👆,👇,✋,👌,👍,👎,✊,👊,👋,👏,👐]
"#": "#"
"*": "*"
"`": "`"
"~": "~"
"@": "@"
"=": "="
'\': "、"
"%": "%"
"$": ["¥", "$"]
"|": ["|", "|", "·"]
"/": ["/", "÷"]
"'": { pair: ["「", "」"] } #表示一对
"[": "【"
"]": "】"
"<": "《"
">": "》"
模糊音纠错
打开 luna_pinyin_simp.custom.yaml
,若关闭前面加 #
。
# 需要哪組就刪去行首的 # 號,單雙向任選
- derive/^([zcs])h/$1/ # zh, ch, sh => z, c, s
- derive/^([zcs])([^h])/$1h$2/ # z, c, s => zh, ch, sh
- derive/^n/l/ # n => l
- derive/^l/n/ # l => n
# 這兩組一般是單向的
- derive/^r/l/ # r => l
- derive/^ren/yin/ # ren => yin, reng => ying
- derive/^r/y/ # r => y
# 下面 hu <=> f 這組寫法複雜一些,分情況討論
- derive/^hu$/fu/ # hu => fu
- derive/^hong$/feng/ # hong => feng
- derive/^hu([in])$/fe$1/ # hui => fei, hun => fen
- derive/^hu([ao])/f$1/ # hua => fa, ...
- derive/^fu$/hu/ # fu => hu
- derive/^feng$/hong/ # feng => hong
- derive/^fe([in])$/hu$1/ # fei => hui, fen => hun
- derive/^f([ao])/hu$1/ # fa => hua, ...
# 韻母部份
- derive/^([bpmf])eng$/$1ong/ # meng = mong, ...
- derive/([ei])n$/$1ng/ # en => eng, in => ing
- derive/([ei])ng$/$1n/ # eng => en, ing => in
# 超级简拼
- abbrev/^([a-z]).+$/$1/ # 簡拼(首字母)
- abbrev/^([zcs]h).+$/$1/ # 簡拼(zh, ch, sh)
# 智能纠错
- derive/([aeiou])ng$/$1gn/ # dagn => dang
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # zho => zhong|zhou
- derive/ong$/on/ # zhonguo => zhong guo
- derive/ao$/oa/ # hoa => hao
- derive/([iu])a(o|ng?)$/a$1$2/ # tain => tian
动态时间日期
打开 Rime.lua
,默认编码如下,双拼用户时间和星期无效,建议改为不冲突编码,例如时间 sj
改为 time
。
- 【日期】
rq
=2022-01-14
、2022年01月14日
、01-14
、2022/01/14
- 【时间】
sj
=03:11
、03:11:00
- 【星期】
xq
=周五
、星期五
、礼拜五
function date_translator(input, seg)
if (input == "rq") then
Candidate(type, start, end, text, comment)
yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%m-%d"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%Y/%m/%d"), ""))
end
if (input == "sj") then
Candidate(type, start, end, text, comment)
yield(Candidate("time", seg.start, seg._end, os.date("%H:%M"), ""))
yield(Candidate("time", seg.start, seg._end, os.date("%H:%M:%S"), ""))
end
if (input == "xq") then
local weakTab = {'日', '一', '二', '三', '四', '五', '六'}
yield(Candidate("week", seg.start, seg._end, "周"..weakTab[tonumber(os.date("%w")+1)], ""))
yield(Candidate("week", seg.start, seg._end, "星期"..weakTab[tonumber(os.date("%w")+1)], ""))
yield(Candidate("week", seg.start, seg._end, "礼拜"..weakTab[tonumber(os.date("%w")+1)], ""))
end
end
再将下面代码添加在对应的输入方案,例如:朙月拼音添加在 luna_pinyin_simp.custom.yaml
。
"engine/translators/@6": lua_translator@date_translator
自定义短语
用文本编辑打开 custom_phrase.txt
,规则:内容+编码+权重(可选),使用 Tab 键间隔。
示例:
Rime rime 4
鼠须管 rime 3
https://rime.im/ rime 2
Squirrel rime 1
皮肤
打开 squirrel.custom.yaml
,将皮肤代码添加进去,按照下图说明设置自己喜欢的皮肤。
- style/color_scheme: 浅色皮肤名称
- style/color_scheme_dark: 深色皮肤名称
延伸:皮肤效果点击这里
修改颜色
- 每 8bit 一组,从低位到高位分别代表 Red、Green、Blue、Alpha,共 32bit。
- Alpha 值(如果界面支持)是可选的,默认为
0xF
F 即不透明。 - 把颜色值写为十六进制数,即
0xAABBGGRR
或0xBBGGRR
。
特定程序中英文
打开 squirrel.custom.yaml
,将程序标识符添加进去,并输入对应模式开启默认中英文。
ascii_mode: true
:默认英文ascii_mode: false
:默认中文ascii_punct: true
:开启英文标点
示例:VSCode 默认英文输入,始终输出英文标点(半角)。
com.microsoft.VSCode:
ascii_mode: true
sacii_punct: true
延伸:如何获取程序标识符?
- 打开 Mac 活动监视器,选中程序,点击上方
···
里取样进程。 - 找到
Identifier
后面即为程序标识符。
大写数字
配置文件是 numbers.schema.yaml
。切换输入方案选择大写数字,使用方法参照下表。
删除错词
将光标(↑
↓
或←
→
)移到要删除的词组上,按 Shift+Fn+Delete
键(第三方键盘按 Control+Delete
)。只能从用户词典中删除词组,词库里词组只会取消其调频顺序。
同步
同步至 iCloud
1、配置文件里打开 installation.yaml
,将 id
改为 Mac(支持自定义)。
2、复制下面路径代码粘贴进去,将 admin
替换为 Mac 管理员名称(代码里 RimeSync
是同步后文件夹名称,支持自定义)。
sync_dir: "/Users/admin/Library/Mobile Documents/com~apple~CloudDocs/RimeSync"
3、点击菜单栏【ㄓ】-【同步用户数据】,等待几秒提示同步成功。打开访达 iCloud 找到名为 RimeSync 的文件即是。
其他同步方案:点击这里
iCloud 词库同步至新配置
- 配置文件里打开
installation.yaml
,将 id 和路径改成与 iCloud 同步文件installation.yaml
里的一至。 - 点击菜单栏【ㄓ】-【同步用户数据】,此时你之前的个人词库已经同步到新配置里。
报错日志
打开终端输入 $TMPDIR/rime.Squirrel.INFO
按回车键,复制路径地址在访达中打开。
找到【rime.squirrel.INFO】文件,右击点选显示原身得到日志文件。
关于词频
配置里搜狗词库已经附带词频,可以满足绝大部分用户需求,初次使用极少部分词频不完全在首位,稍微用几日即可。