已更新,详见 我的 Rime 配置 2021

我的 Rime 配置

方案:luna_pinyin_simp 简中全拼

输入法全局设定 default.custom.yaml

常规设置,最好开启 Tab 移动光标的功能,这个太好用啦!

1
2
3
4
# move_by_word_with_tab: 
- { when: composing, accept: ISO_Left_Tab, send: Shift+Left }
- { when: composing, accept: Shift+Tab, send: Shift+Left }
- { when: composing, accept: Tab, send: Shift+Right }

皮肤与静默中文设定 squirrel.custom.yaml

我使用的皮肤,照着落格输入法的暗色皮肤弄的,不过高亮色我选用了绿色:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
luoge:
  name: 落格输入法暗色配色
  author: Dvel
  back_color: 0x2C2B2B    # 候选条背景色,24位色值,16进制,BGR顺序
  border_color: 0x0A0C0F    # 边框色
  text_color: 0xFFFFFF    # 拼音行文字颜色
  hilited_back_color: 0x282C34    # 第一候选项背景背景色
  hilited_candidate_text_color: 0xFFFFFF    # 第一候选项文字颜色
  hilited_candidate_label_color: 0xFFFFFF   # 第一候选项编号颜色
  hilited_candidate_back_color: 0x578E3A # 第一候选项背景颜色
  hilited_comment_text_color: 0x999999    # 注解文字高亮
  hilited_text_color: 0x999999    # 高亮拼音 (需要开启内嵌编码)
  candidate_text_color: 0xe9e9ea    # 预选项文字颜色
  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: 17    # 候选文字大小
  label_font_point: 13    # 候选编号大小
  corner_radius: 5    # 候选条圆角
  hilited_corner_radius: 5    # 高亮圆角
  border_height: 4     # 窗口上下高度
  border_width: 4   # 窗口左右宽度
  border_color_width: 0   #输入条边框宽度
  #label_font_face: "SFCompactText-Regular"  # 候选词编号字体

集中管理词库

GitHub 上很多配置都乱糟糟的,找起文件来很麻烦,建议统一将词库文件放进一个文件夹里。

  • 设置配置项:
1
"translator/dictionary": luna_pinyin.extended
  • 创建单独的词库文件夹 ext_dict/ 并将所有词库文件移入
  • 创建词库管理文件 luna_pinyin.extended.dict.yaml 并写入以下配置:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
---
name: luna_pinyin.extended
version: "2021-01-31"
sort: by_weight
use_preset_vocabulary: true

import_tables:
  # 主要的:
  - ext_dict/luna_pinyin
  # cn_en
  - ext_dict/luna_pinyin.cn_en
  # 自己的:
  - ext_dict/d
  # 有点用的:
  - ext_dict/luna_pinyin.i
  - ext_dict/luna_pinyin.computer
  - ext_dict/luna_pinyin.chengyusuyu
  - ext_dict/luna_pinyin.kaifazhuanyongciku
  - ext_dict/luna_pinyin.poetry
  - ext_dict/luna_pinyin.mingxing
  # 其他:
  # - ext_dict/luna_pinyin.xiandaihanyuchangyongcibiao
  # - ext_dict/luna_pinyin.dianshiju
  # - ext_dict/luna_pinyin.falv
  # - ext_dict/luna_pinyin.gushici
  # - ext_dict/luna_pinyin.movie
  # - ext_dict/luna_pinyin.music
  # - ext_dict/luna_pinyin.sgmain
  # - ext_dict/luna_pinyin.shoujicihui
  # - ext_dict/luna_pinyin.wangluoliuxingci
  # - ext_dict/luna_pinyin.yixue
...

将所有词库文件移动到这个文件夹内,在配置文件中写入即可。

简体拼音方案设定 luna_pinyin_simp.custom.yaml

engine/filters

使用 GB2312 的优点:对于普通的简中用户而言,很少输入繁体,也很少输入简体字中的生僻字,所以使用 GB2312 过滤后可以去掉很多生僻字。

1
2
3
4
5
engine/filters:
  - simplifier
  - charset_filter@gb2312
  - simplifier@emoji-symbol
  - uniquifier

缺点是切换繁体时,需要同时切换繁体+切换字符集,如果开启了快捷键的话也很方便,只要顺着按 Control+Shift+4 和 5 就切换到繁体了:

1
2
3
# 注意 toggle 的值应该是你在 switches 设置的开关名称
- { when: always, accept: Control+Shift+4, toggle: zh_simp }
- { when: always, accept: Control+Shift+5, toggle: gb2312 }

也可以使用 GBK,这样字符集更大:

1
2
3
4
5
engine/filters:
  - simplifier
  - charset_filter@gbk
  - simplifier@emoji-symbol
  - uniquifier

在 GB2312 下打出破折号

参考于 https://github.com/rime/home/issues/469

1
2
gb2312/tags:
    [abc, reverse_lookup, luna_pinyin_lookup, stroke_lookup]

Easy English Nano

https://github.com/mityliu/rime-custom 找到了一份更好的 easy_en 方案,支持了首字母为大写字母的英文输入。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
"schema/dependencies/@next": melt_eng
"engine/translators/@before 0": table_translator@melt_eng
melt_eng:
  dictionary: melt_eng
  spelling_hints: 9
  enable_completion: true
  enable_sentence: false
  # 值为-1时,在能得到中文结果的情况下英文永远不会出现在第一个候选项。
  # 还是应该设置为 -1,否则按我的词典,输入“i”得到“一”,值为0时,字母会一直占据第一个候选项
  initial_quality: -1 
# 令輸入方案對大寫字符生效
# 删掉了 - 和 _ 两个字符,影响日常输入体验,但如果词库中有连字符就无法打出了
# "speller/alphabet/+": zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA-_
"speller/alphabet/+": zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
recognizer/patterns/up	percase: ''

cn_en 中英混输方案

解决了如 “U盘” “T恤” 等词语的输入。

建议一定要开启这一项:

1
2
3
# 改写拼音运算,使得含英文的字词(位于 luna_pinyin.cn_en.dict.yaml 中)不影响简拼功能(注意,此功能只适用于於朙月拼音系列方案,不适用于各类双拼方案)
# 本条补丁只在「小狼毫 0.9.30」、「鼠须管 0.9.25 」、「Rime-1.2」及更高的版本中起作用
"speller/algebra/@before 0": xform/^([b-df-np-z])$/$1_/

标点符号的候选设定与取消

基于以前的使用习惯,我并不习惯 Rime 默认的这种标点输入方法,参考配置文件,全部取消掉就可以了。

自动纠错

如果设置写成了 'speller/algebra': 发现丢失了超级简拼的功能,加上加号即可。

Rime 的自动纠错设计的真是好用,基于正则表达式语法,可以很简单的设置:

1
2
'speller/algebra/+':
  - derive/zai$/zia/  # 输入[zia],得到[zai]

利用正则表达式,可以写出很多实用的纠错功能:

1
2
3
4
5
6
- derive/^([nl])ve$/$1ue/  # nve = nue, lve = lue
- derive/ua$/au/  # shau => shua
- derive/([iu])a(o|ng?)$/a$1$2/   # tain => tian
- derive/a([on])$/$1a/  # hoa => hao  hna  => han
- derive/zai$/zia/   # zia => zai
- derive/([zcs])hi$/$1ih/ # zih => zhi cih => chi sih => shi

编写时注意,例如你写成了 /ai$/ia/,输入[zia]确实可以纠错成[zai],但输入[lia]也会变成[lai],输入[lai]也会变成[lia]。

“来”和“俩”都是正确的发音,编写时注意不要写出这种纠错就可以了。

日期、时间

1
2
3
4
# librime-lua 输入动态时间和日期
engine/translators/+: 
  - lua_translator@date_translator
  - lua_translator@time_translator

引入参考配置文件中的 lua 文件即可,也可以在 lua 文件改变或注释掉不喜欢的格式。

加入 emoji-symbol 并换成 “v” 模式

  • 引入文件,位于 opencc 文件夹。
  • 加入开关
1
2
3
switches:
  - name: emoji-symbol
  reset: 1
  • 引入 emoji-symbol
1
2
3
emoji-symbol:
  opencc_config: emoji-symbol.json
  option_name: emoji-symbol
  • 换成并编辑 “v” 模式
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
punctuator:
  import_preset: symbols
  # 引入“v”模式
  symbols:
  "vv": [/bq] # 表情
  "vs": [/ss] # 手势
  "vam": [/am] # 动物
  "vk": [/aj] # 键盘符号
  "vf": [/fs] # 分号
  "vb": [/fh] # 标志
  "vx": [/xh] # 星号
  "vm": [/hb] # money
  
# “/”模式转为“v”模式
recognizer/patterns/punct: "^v([a-z]+|[0-9]0?)$"

emoji 需要 UTF8 字符集来支持,幸好 Rime 支持了 simplifier@emoji-symbol 功能,不必使用大字符集也可以使用 emoji:

1
2
3
4
5
engine/filters:
  - simplifier
  - charset_filter@gb2312
  - simplifier@emoji-symbol
  - uniquifier

测试发现如果 uniquifier 不放在最后一个,比如打 [zeng] [综] 这个字会出现两个。

同步功能

installation.yaml 中添加 sync_dir

1
2
3
4
# 默认为随机的 UUID,可以起一个好记的名字
installation_id: "my computer"
# 需要手动添加下行,设定用户同步目录
sync_dir: "/Users/<your username>/Dropbox/Rime_Sync"

如果同时使用两台电脑,只要使用方案一致,不必手动去合并 *.userdb.txt 这个用户个人词库。

点击 [重新部署],用户设定目录 → 同步目录,单向操作。

点击 [同步用户数据],用户设定目录 ←→ 同步目录,双向同步,Rime 会自动合并引入所有 ID 下的个人词库。

袖珍简化字拼音

链接:rime/rime-pinyin-simp

袖珍方案(pinyin_simp)有很多问题,还是推荐使用朙月拼音简化字(luna_pinyin_simp)方案。

  • 同样使用 GB2312 过滤后,袖珍方案的生僻字反而更多
  • 不能在这个方案下切换繁体

也可能不是这个词库的问题,可能是 Rime 过滤器的问题,但总之这个和 luna_pinyin 相比不能过滤掉更多的生僻字,还是不推荐使用。

词库的大小

个人倾向于保留必要的词库即可,词库太大会增加不常用词的出现,且删除时需要一个一个文件的找到手动删除。

自造词只需要按下 Fn+Shift+Del 就可以删除。

比如网上适用于 Rime 的搜狗的主词库,一大堆生僻词汇,其实日常使用自带的 luna_pinyin.dict 已经完全够用。

可以加入诗词、医学、计算机等不会干扰日常用词的扩展词库。

词库中的权重

词库中的第三项数字,也就是权重,反映的是候选的初始排序,但是用户输入的调频优先级更高(https://github.com/rime/home/issues/657#issuecomment-738556718)。

也就是说在词库中给的权重哪怕是 999999999999999999 也没有卵用,固定词频参考下面。

固定词频(固定候选项顺序)

固定候选项顺序,即输入特定编码后,前 X 项永远固定,不参与调频。

这里如果放入了一些单字+全拼音的配置,可能会导致这个字无法和其他字组词,因为这本质上另一个解释器,Rime 不支持两个解释器之间混合造词。

示例,固定单编码的第一候选项词频:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
去	q
我	w
呃	e
有	y
有	u
一	i
哦	o
是	s
的	d
个	g
和	h
就	j
了	l
在	z
小	x
不	b
你	n
没	m

示例,固定他、她、它在前三:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
他	t	3
她	t	2
它	t	1
他	ta	3
她	ta	2
它	ta	1
他们	tamen	3
她们	tamen	2
它们	tamen	1
他的	tade	3
她的	tade	2
它的	tade	1