-
Notifications
You must be signed in to change notification settings - Fork 128
issues
- 什么是用户资料夹
- 发布页两个版本的区别
- 如何更新
- 候选词个数
- 模糊音设置
- 中英文混合输入
- 必须输入全拼才能出候选列表
- 大写不能直接上屏
- 快捷键
- 修改快捷键
- 设置默认英文
- 出现候选框时按Shift字母不会上屏
- 删除一个自造词
- 词序总是错乱
- 小狼毫在onenote等软件下不能正常使用
- emoji字体呈方块状
- 导入自定义词库
- 同步词库
- 其它
以上目录生成自 sed -n '/^## /{s/^## \(.*\)/- [\1](#\1)/g;p}' issues.md
所有配置都围绕着用户资料夹展开,参考 Rime 中的数据文件分布及作用
修改配置文件时需要注意:
- 严格遵守 yaml 语法,缩进都是两个空格,不能用 tab 代替,否则配置是无效的
- 只能有一个 patch: 行,如有相同的项目请合并。
除程序文件以外,Rime 还包括多种数据文件。 这些数据文件存在于以下位置:
- 【中州韵】
/usr/share/rime-data/
- 【小狼毫】
"安装目录\data"
- 【鼠须管】
"/Library/Input Methods/Squirrel.app/Contents/SharedSupport/"
- 【中州韵】
~/.config/ibus/rime/
(0.9.1 以下版本为~/.ibus/rime/
)- 【小狼毫】
"%APPDATA%\Rime"
- 【鼠须管】
~/Library/Rime/
共享资料夹 包含预设输入方案的源文件。 这些文件属于 Rime 所发行软件的一部份,在访问权限控制较严格的系统上对用户是只读的,因此谢绝软件版本更新以外的任何修改—— 一旦用户修改这里的文件,很可能影响后续的软件升级或在升级时丢失数据。
在「部署」操作时,将用到这里的输入方案源文件、并结合用户定制的内容来编译预设输入方案。
用户资料夹 则包含为用户准备的内容,如:
- 〔全局设定〕
default.yaml
- 〔发行版设定〕
weasel.yaml
- 〔预设输入方案副本〕
<方案标识>.schema.yaml
- ※〔安装信息〕
installation.yaml
- ※〔用户状态信息〕
user.yaml
编译输入方案所产出的二进制文件:
- 〔Rime 棱镜〕
<方案标识>.prism.bin
- 〔Rime 固态词典〕
<词典名>.table.bin
- 〔Rime 反查词典〕
<词典名>.reverse.bin
记录用户写作习惯的文件:
- ※〔用户词典〕
<词典名>.userdb/
或<词典名>.userdb.kct
- ※〔用户词典快照〕
<词典名>.userdb.txt
、<词典名>.userdb.kct.snapshot
见于同步文件夹以及用户自己设定的:
- ※〔用户对全局设定的定制信息〕
default.custom.yaml
- ※〔用户对预设输入方案的定制信息〕
<方案标识>.custom.yaml
- ※〔用户自制输入方案〕及配套的词典源文件
注:以上标有 ※ 号的文件,包含用户资料,您在清理文件时要注意备份!
由于 rime 处理词库的原理是提前将词库转换为二进制文件,这个过程被称为部署,当词库较大时,在 windows 或 32 位的 linux 发行版下会部署失败,有人提出过这个问题 放到用户文件夹后切换到这个输入法就没法用了,所以我在发布页提供了两个压缩包,一个包含二进制文件,一个不包含二进制文件,方便不同的选择。
- clover.schema 不包含二进制文件,复制到新机器上之后需要重新部署。
- clover.schema-build 包含二进制文件目录(build目录),复制到新机器上之后重新部署的时间大量缩短,能避免部署失败的情况。
由于国内访问 github 较慢,所以我在蓝奏云也上传了一份 https://fkxxyz.lanzous.com/b00zl958j
解压到用户资料夹覆盖所有文件,然后重新部署即可,记忆的词库词频不会丢。
修改用户资料夹的 default.custom.yaml ,找到 menu/page_size 字段,如果没有则创建,设置该字段的值即可。例如
patch:
"menu/page_size": 8
schema_list:
- schema: clover
详见 一例、定制每页候选数
对于模糊音的配置,目前还没有方便的图形界面的配置,如果有需要的话照做吧:
在用户资料夹创建 clover.custom.yaml ,内容为
patch:
speller/algebra:
# 模糊音
# 基础
- abbrev/^([a-z]).+$/$1/
- abbrev/^([zcs]h).+$/$1/
# 补全
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # o = ou; o = ong
- derive/ong$/on/ # on = ong
- derive/^ding$/din/ # din = ding
# 处理 v 和 u
- derive/^([nl])ue$/$1ve/ # nve = nue; lve = lue
- derive/^([jqxy])u/$1v/ # v = u; v = u
# 智能纠错
- derive/ao$/oa/ # oa = ao
- derive/([iu])a(o|ng?)$/a$1$2/ # aio = iao; aing = iang; aung = uang
- derive/([aeiou])ng$/$1gn/ # gn = ng
- derive/un$/uen/ # uen = un
- derive/ui$/uei/ # uei = ui
- derive/iu$/iou/ # iou = ui
- derive/tie$/tei/ # tei = tie
- derive/i$/ii/ # ii = i # i 不小心按两下
- derive/u$/uu/ # ui = u # u 不小心按两下
然后参考官方推荐的模糊音配置 https://gist.github.com/lotem/2320943
找到你想添加的模糊音,在第三行前面加上即可。
再次强调 yaml 的语法,上面每个 derive 前面都是四个空格,不能用 tab 代替。
如,我想把 en 与 eng 和 in 与 ing 模糊,那么修改后就变成了这样:
patch:
speller/algebra:
# 模糊音
- derive/([ei])n$/$1ng/ # ing = in; eng = en
- derive/([ei])ng$/$1n/ # in = ing; en = eng
# 基础
- abbrev/^([a-z]).+$/$1/
- abbrev/^([zcs]h).+$/$1/
# 补全
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # o = ou; o = ong
- derive/ong$/on/ # on = ong
- derive/^ding$/din/ # din = ding
# 处理 v 和 u
- derive/^([nl])ue$/$1ve/ # nve = nue; lve = lue
- derive/^([jqxy])u/$1v/ # v = u; v = u
# 智能纠错
- derive/ao$/oa/ # oa = ao
- derive/([iu])a(o|ng?)$/a$1$2/ # aio = iao; aing = iang; aung = uang
- derive/([aeiou])ng$/$1gn/ # gn = ng
- derive/un$/uen/ # uen = un
- derive/ui$/uei/ # uei = ui
- derive/iu$/iou/ # iou = ui
- derive/tie$/tei/ # tei = tie
- derive/i$/ii/ # ii = i # i 不小心按两下
- derive/u$/uu/ # ui = u # u 不小心按两下
当然如果你能看懂上面的正则表达式,那么你也可以自己自定义模糊音了。
修改完成后,记得重新部署生效。
中英文混合输入是让类似 “哆啦A梦”、“T恤” 这样的词语能直接出现在候选列表里。
该输入方案默认没有加入中英文混合,加入中英文混合输入有两个方法,但是分别都有相应的弊端,目前没有完美的解决方案。
这个方法是按照类似 导入自定义词库 的方法,导入了一些现有的中英文混合词典,但是导致严重的问题是普通词组变得只能全拼来输入,简拼的时候候选列表变成了空的。
已经有人提出过这个问题
内嵌 easy_en 的方法是由 https://github.com/fkxxyz/rime-cloverpinyin/issues/4#issuecomment-654979456 启发,将这个项目嵌入该输入方案(需要 rime-lua 支持,旧版本的 rime 没有该功能)
https://github.com/BlindingDark/rime-easy-en
但是我亲自测试发现,导致的后果是输入大写字母无法直接上屏,所以这个办法也要慎重考虑
例如输入 “weisha” 才会出来 “为啥”,而输入 “ws” 的候选列表是空的!
这个问题有人提过 请教,能实现简拼和混拼吗?
该输入方案默认就是可以简拼输入的,简拼失效的原因是自己加入了中英文混合的词典导致的 中英文混合输入
删掉自己加入的那些词典即可恢复正常。
目前暂时没有又能中英文混合输入又能简拼的完美方法。
在 1.1.4 的版本,我刚修复这个问题。但是内嵌 easy_en 也会导致大写无法上屏。
所以自然两个解决办法
-
更新到最新版
-
去掉 easy_en 的内嵌
该方案的默认快捷键为:
- 繁简切换 Ctrl+Shift+2 或 Ctrl+Shift+f 。
- emoji开关 Ctrl+Shift+3
- 符号输入 Ctrl+Shift+4
- ascii标点切换 Ctrl+Shift+5 、 Ctrl+, 或 Ctrl+。
- 全半角切换 Ctrl+Shift+6 、 Shift+Space
由于 rime 的设定,这些切换也可以通过打开方案选单来完成,方案选单默认有个快捷键 F4 ,按 F4,再按 2,即可看到这些设定,选择相应的开关设定即可。
如果你不想用 emoji 或者符号输入的功能,则需要修改配置文件才能永久关闭该功能:
修改 clover.custom.yaml ,添加一个补丁:
switches:
- name: zh_simp_s2t
reset: 0
states: [ 简, 繁 ]
- name: emoji_suggestion
reset: 1
states: [ "🈚️️\uFE0E", "🈶️️\uFE0F" ]
- name: symbol_support
reset: 1
states: [ "无符", "符" ]
- name: ascii_punct
reset: 0
states: [ 。,, ., ]
- name: full_shape
reset: 0
states: [ 半, 全 ]
- name: ascii_mode
reset: 0
states: [ 中, 英 ]
将 emoji_suggestion 或 symbol_support 里面的 reset 改成 0 即可。
这里其实是定制方案选单的选项,reset 表示默认选中 states 的第几个选项,更多请看一例、定制简化字输出
修改用户资料夹下的 clover.key_bindings.yaml ,这里面包含了所有的快捷键,相关的语法在官方文档有介绍 rime其它设置
想删除某个快捷键,删除那一行再重新部署即可。
注意不是快捷键的行不要删否则重新部署会失败。
注:对于 archlinux 用户,从 AUR 安装的该方案用户资料夹没有 clover.key_bindings.yaml,从系统资料夹复制过来即可
/usr/share/rime-data/clover.key_bindings.yaml
修改 clover.custom.yaml ,添加一个补丁:
"switches/@5/reset": 1
由于 rime 的中英文切换的快捷键和 fcitx 的切换输入法的快捷键都是 shift ,fcitx 的快捷键优先于 rime,所以会导致这种情况。
解决方法:右键托盘图标,配置,打开 fcitx 的配置,点全局配置,额外的激活输入法快捷键,选择禁用。点显示高级选项,在这里的激活输入法可以设置为 shift
有时候错误的输入了一个词语,这个错误的词语每次会出现在候选框中,看着难过,那么可以删除这个词语。
按上下键高亮选中这个词语,然后按 Ctrl+Del 或 Shift+Del即可删除该词。(鼠须管的快捷键是 Fn + Shift + Delete)
有时候,发现以为自己最经常打的字候选词里一定排在第一位,但是时间长了发现好像并不是这么回事,似乎自己最近打的词比使用频率最高的词排序还要靠前,这导致大量的输入错误严重降低了打字效率,后来看到这个帖子
原来 rime 的排序特点就是如此,但是这会导致词序经常很乱,也无法固定首位,怎么办呢,我就这个问题向rime作者反馈,得到的回应是,这是记忆力算法,刚开始词序可能会变化较大,长期会趋于稳定,那这么看来暂时先这样用着时间长就好了。
这是小狼毫的 bug,我目前无法解决,详见
类似 bug ,全拼程序也无法使用小狼毫。
这是因为没有安装 emoji 字体导致。
在 archlinux 下,可以直接从 aur 安装 apple emoji 的字体:
yay -S ttf-apple-emoji
在其它 linux 发行版,可以从这个地址下载到 apple emoji 的字体
https://git.synh.me/dmitry/AUR/-/raw/master/files/ttf-apple-emoji/apple-color-emoji.ttc
下载好之后,需要复制到 /usr/share/fonts 的某个子目录下,然后更新字体缓存
cd /usr/share/fonts
sudo fonts.dir
sudo mkfontdir
在其它平台,需要自己想办法了。
可以借助深蓝词库转换这个项目,导入它所能支持的所有细胞词库如搜狗拼音细胞词库等。
首先在用户资料夹下建立 clover.dict.yaml ,内容为
name: clover
version: "1"
sort: by_weight
import_tables:
- clover.base
- clover.phrase
- THUOCL_animal
- THUOCL_caijing
- THUOCL_car
- THUOCL_chengyu
- THUOCL_diming
- THUOCL_food
- THUOCL_IT
- THUOCL_law
- THUOCL_lishimingren
- THUOCL_medical
- THUOCL_poem
- sogou_new_words
建立了这个文件之后,会覆盖默认的词库。
关于这个文件的格式详解: Dict.yaml 详解
在这里,需要说明 import_tables 导入表里的每一项。
- clover.base 这是单字的字库,包含所有字的拼音、字频,对应文件 clover.base.dict.yaml
- clover.phrase 这是词组的词库,包含所有基本词汇的拼音、词频,对应文件 clover.phrase.dict.yaml
- THUOCL_* 这是清华大学开源词库,对应文件 THUOCL_*.dict.yaml
- sogou_new_words 这是每周更新的搜狗网络流行新词,对应文件 sogou_new_words.dict.yaml
然后你可以在该文件的后面,按照上述格式(两个空格一个减号一个空格),任意添加你自己创建或导入的词库,当然你也可以删除上述你不想要的词库。
需要注意以下几点:
-
clover.base 是不可以删除的,否则会失去所有文字的拼音导致导入任何词库都无效。
-
导入的词库也遵循同样的格式,但是导入的词库的 import_tables 项是无效的(也就是不能嵌套)
-
导入的词库的 name 字段必须和文件名一致,后缀为 .dict.yaml
例如文件名 “音乐词汇大全.dict.yaml” 的第一行为
name: 音乐词汇大全
否则导入的该词库也会无效
下面以导入搜狗音乐词汇大全的细胞词库为例
首先来这里下载该细胞词库 音乐词汇大全
然后用深蓝词库转换为 “音乐词汇大全.txt” ,下面是不同平台的使用方法:
-
Windows端
下载地址 imewlconverter_Windows.zip
打开深蓝词库转换,指定好要转换的文件、源类型为 “搜狗细胞词库scel”,目标类型为 “Rime中州韵”,点击转换,提示是否保存点“是”,保存为 “音乐词汇大全.txt”
-
archlinux
在 archlinux 下直接从 AUR 安装深蓝词库转换即可 yay -S imewlconverter-bin
然后执行
imewlconverter -i:scel 音乐词汇大全.scel -o:rime 音乐词汇大全.txt
-
其它 linux 发行版
下载地址 imewlconverter_Linux_Mac.tar.gz ,解压得到 ImeWlConverterCmd
然后执行
ImeWlConverterCmd -i:scel 音乐词汇大全.scel -o:rime 音乐词汇大全.txt
-
macOS端自测
然后在用户资料夹下创建 “音乐词汇大全.dict.yaml”,内容为
name: 音乐词汇大全
version: "1.0"
sort: by_weight
...
阿炳 a bing 1
阿甲文 a jia wen 1
阿拉伯风格曲 a la bo feng ge qu 1
阿勒曼舞曲 a le man wu qu 1
把“音乐词汇大全.txt”里面的词都追加到后面。
然后在用户资料夹下建立 clover.dict.yaml ,内容为
name: clover
version: "1"
sort: by_weight
import_tables:
- clover.base
- clover.phrase
- THUOCL_animal
- THUOCL_caijing
- THUOCL_car
- THUOCL_chengyu
- THUOCL_diming
- THUOCL_food
- THUOCL_IT
- THUOCL_law
- THUOCL_lishimingren
- THUOCL_medical
- THUOCL_poem
- sogou_new_words
- 音乐词汇大全
右键托盘图标,点击“重新部署”,片刻之后,打字测试看看有没有相应的词汇吧。
rime 允许不同系统之间进行词库的同步。
该功能详见 同步用户资料
默认同步的文件夹在用户资料夹下 sync ,点击同步时,会生成这个文件夹,你也可以设置 installation.yaml 里面的 sync_dir 来修改同步文件夹。
用户词库词频信息被保存在 同步文件夹下的对应 id 里的 clover.userdb.txt 里,每次点击同步时,会合并所有 id 里的该文件。
所以可以利用云同步服务例如 坚果云 一类的软件,来实现个人不同电脑之间的词库同步。
其它常见问题看官方文档的常见问题吧。
home first footer!
- 什么是用户资料夹
- 发布页两个版本的区别
- 如何更新
- 候选词个数
- 模糊音设置
- 中英文混合输入
- 必须输入全拼才能出候选列表
- 大写不能直接上屏
- 快捷键
- 修改快捷键
- 设置默认英文
- 出现候选框时按Shift字母不会上屏
- 删除一个自造词
- 词序总是错乱
- 小狼毫在onenote等软件下不能正常使用
- emoji字体呈方块状
- 导入自定义词库
- 同步词库
- 其它
以上目录生成自 sed -n '/^## /{s/^## \(.*\)/- [\1](\/fkxxyz\/rime-cloverpinyin\/wiki\/issues#\1)/g;p}' issues.md