一、声明
- 因为我这里只有
win10
电脑,就以win10
系统电脑五笔86输入方案为例, - 其他系统的可以这此为基础进行参考;
- 个人建议先在虚拟机里配置好,再移到宿主机上(大佬除外);不要为我为什么知道。
- 以下内容,是我整理得到,参考了很多大佬的文章,若有侵权,请联系删除!谢谢!
- B站对应的视频教程:【不知何处雨已觉此间凉的个人空间-哔哩哔哩】 https://b23.tv/gtYhIHR
二、下载与安装
-
首先要到小狼毫官网,进行下载小狼毫:https://rime.im/;点击:下载;下载对应系统的版本就行,
-
安卓方面建议:中文输入法(无障碍版),
-
我这里以安装到桌面为例;
补丁文件我放在程序同目录下的(
config
)「用户自定义文件夹」中我这里准备了两份文件,一份是我已经配置好的补丁,一份是补丁模板;
先演示我配置好的文件吧!
后面以我配置好的补丁为例,在模板上进行修改配置;
三、输入方案、lua
脚本、自定义短语
-
这里先说一下:后面会看到几文件后缀,如:
xxx.custom.yaml
:是给一个文件打补丁,比如:皮肤补丁(weasel.custom.yaml
),输入方案补丁(wubi86.custom.yaml
)、默认设置补丁(default.custom.yaml
)
xxx.shchema.yaml
:输入方案通常与xxx.dict.yaml
一起使用
在yaml
为后缀的文件中#代表注释; 以空格表示上下级关系,下级比上级在前多了两个空格;
xxxxx.userdb
(文件夹)后缀:是指用户词库,删掉后不影响使用 (我这里以86五笔为例,其他可以对照进行参考) -
在默认设置补丁(
default.custom.yaml
)-
可设置候选词个数。(注意缩进)
#如设置候选词个数9个 "menu/page_size": 9
-
-
在皮肤补丁(
weasel.custom.yaml
)中可以设置水平还坚直显示#命令如下 "style/horizontal": true #横竖排 # "style/font_face": "Microsoft YaHei Mono" #微软雅黑 # "style/font_point": 13 #字号13
(一)、输入方案
-
输入方案:配置小狼毫没有自带的输入方案,如:五笔、英文、仓颉六代;
-
把五笔输入方案丢到用户目录下(
config
),然后开始菜单(右下角),找到小狼毫输入法设定,
找到对应的输入方案打勾就行,点“中”,选择皮肤,接着点“中”就行了;
(二)、 Lua
脚本:
-
把
lua
脚本文件丢到用户目录下;如果有多个
lua
脚本文件,可以把合并成一个,复制一个文件到另一个文件里面的最后面,保存即可; -
补充一点:在
lua
脚本中:input=="XXXX"
,中的XXXX
为显示所需的编码;Candidate
后面 中的内容表示一个候选项;过多的就不说了; -
把输入方案的补丁模板,放到用户目录下;
将补丁文件更名为自己想要实现的输入方案即可,
如:86五笔就为:
wubi86.custom.yaml
;拼音就为:
luna_pinyin_simp.custom.yaml
。后面更改什么就在这个补丁中修改就行了;在补丁文件中,加入这一句(注意缩进):
"engine/translators/@before 0": lua_translator@date_translator #表示`lua`脚本中的`date_translator函数;
-
效果截图:
(三)、自定义短语:
-
在补丁文件中加这一句(注意缩进):
"engine/translators/@before 1": table_translator@custom_phrase
-
具体的细节在补丁文件的后面进行定义:
#自定义短语 custom_phrase: dictionary: "" user_dict: custom_phrase db_class: stabledb enable_completion: false enable_sentence: false initial_quality: 1
-
然后在用户目录下建立一个
custom_phase.txt
文件;不过这里有模板,在模板中写入码表就了。
- 码表各字段以制表符(Tab)分隔
- 顺序为:文字、编码、权重(決定重码的次序、可选);权重越大就越靠前;
- 例子:
-
内容
# 【小狼毫】0.9.21 以上 # # 請將該文件以UTF-8編碼保存爲 # Rime用戶文件夾/custom_phrase.txt # # 碼表各字段以製表符(Tab)分隔 # 順序爲:文字、編碼、權重(決定重碼的次序、可選) # # 雖然文本碼表編輯較爲方便,但不適合導入大量條目 # # no comment # #1、————acount number———— # ——Email—— xxxx@edu.cn email 1 xxxxx@qq.com email 2
-
-
这里提一句,这里完成的就是一个码表转化的功能,类似于词库(
dict
)的功能;后面会说到,当自定义多时,就可以加到词库(
dict
文件) -
也可以调用其他输入方案的词库进行混输,
如:中英文混输,这样就不用切换输入法了。中文不同方案混输就算了o(TヘTo)!
-
用于中文输入时,偶尔输入一个两个单词时,
-
中英文混输实现(调用的英文词库为:easy_en
-
在补丁文件中加这一句(注意缩进):
engine/translators/@before 1": table_translator@english
-
具体的细节在补丁文件的后面进行定义:
#细节定义 english: dictionary: easy_en #user_dict: custom_phrase #db_class: stabled spelling_hints: 9 enable_completion: true enable_sentence: false initial_quality: -1
-
四、滤镜(普通、编码)
-
滤镜都是丢到程序目录的
Rime\weasel-0.14.3\data\opencc
目录下;一般包含
txt
和json
后缀的文件,可能还会有ocd
后缀的文件; -
滤镜又可分为普通滤镜和编码滤镜,二者在
txt
内容和补丁文件中的定义和显示效果也是不同的。- 普通滤镜:所谓普通滤镜,就是类似简繁转换效果的滤镜。滤镜相关内容直接出现在侯选项⾥对应位置,可以和正常的侯选项⼀样操作。如果滤镜关键字对应内容有多项,多项内容将在原滤镜关键字位置插⼊,原有的侯选项将排到后⾯
- 它的优点是可以⼀对多,也就是⼀个滤镜项可以对应多个滤镜内容,中间以空格分隔。⽽且多个滤镜的相同关键字内容可以同时存在,缺点是⽆法显⽰空格和换⾏。因为空格是它的分隔符,换⾏更不⽤说了
- 编码滤镜:指在编码区显⽰的滤镜。推荐⽤途:适⽤于⼀切需要多⾏及排版的内容,如唐诗宋词,词典类以及带⽬录性质的内容.原理:通过滤镜转换对应条⽬的编码,使⽤正则式使编码变形,形成多⾏和带空格等普通滤镜⽆法形成的效果;
- 编码滤镜不会占⽤侯选条⽬位置,⽽是在滤镜关键字编码区出现的这就是它的优点,可以通过编码区正则变换显⽰空格和换⾏。缺点就是制作滤镜条⽬内容时不能有真正的空格。如果有,空格后⾯的内容会省略,也就是不会显⽰
- 普通滤镜:所谓普通滤镜,就是类似简繁转换效果的滤镜。滤镜相关内容直接出现在侯选项⾥对应位置,可以和正常的侯选项⼀样操作。如果滤镜关键字对应内容有多项,多项内容将在原滤镜关键字位置插⼊,原有的侯选项将排到后⾯
-
先说
txt
文件,再说json
文件,然后再到补丁中的定义吧!-
普通滤镜的
txt
:格式:滤镜关键字\t滤镜内容1 滤镜内容2
说明:关键字为,你输入对应的关键字就会显示滤镜内容,但有时不会显示是为什么呢?这说明你的输入方案没有这个关键字,也就是词、字、成语、字母等等,这个后面词库那里会说;滤镜显示内容,以空格分隔,每个空格后内容代表一个独立的滤镜内容。
同时一个
txt
文件里面不要有重复的滤镜关键字,否则无法正常使用。如下:
大小 大小 测试
百度 百度
badu
邮箱 邮箱
xxx@163.com xxx@aliyun.com
-
编码滤镜的
txt
:心
<br>
/\/\<br>
\ /<br>
  
\/其中
<br>
代表换行, 
代表空格
-
-
json
文件两种滤镜没区别。json
后缀的文件是用来读取txt
文件中内容的,json
与txt
对应有以下几种:-
1个
txt.json
(以读es.txt
文件为例):{ "name": "Chinese to Emoji", "segmentation": { "type": "mmseg", "dict": { "type": "text", "file": "es.txt" } }, "conversion_chain": [{ "dict": { "type": "text", "file": "es.txt" } }] }
-
2个
txt.json
:{ "name": "lxcCJ", "segmentation": { "type": "mmseg", "dict": { "type": "text", "file": "lxcCJ.txt" } }, "conversion_chain": [{ "dict": { "type": "group", "dicts": [{ "type": "text", "file": "lxcCJ.txt" }, { "type": "text", "file": "lcx_sen.txt" }] } }] }
-
3个
txt.json
:{ "name": "English2ch", "segmentation": { "type": "mmseg", "dict": { "type": "text", "file": "English_cn.txt" } }, "conversion_chain": [{ "dict": { "type": "group", "dicts": [{ "type": "text", "file": "english_cn.txt" }, { "type": "text", "file": "english_en.txt" }, { "type": "text", "file": "english_ciba_cn1.2.txt" }] } }] }
-
3+个
txt.json
:{ "name": "dic add", "segmentation": { "type": "mmseg", "dict": { "type": "ocd", "file": "dic_ch_4.ocd" } }, "conversion_chain": [{ "dict": { "type": "group", "dicts": [{ "type": "ocd", "file": "dic_ch_4.ocd" }, { "type": "ocd", "file": "dic_ch_1.ocd" }, { "type": "ocd", "file": "dic_ch_2.ocd" }, { "type": "ocd", "file": "dic_ch_3.ocd" }, { "type": "text", "file": "dic_ciba_0.txt" }, { "type": "ocd", "file": "dic_ciba_1.ocd" }, { "type": "ocd", "file": "dic_ciba_2.ocd" }, { "type": "ocd", "file": "dic_ciba_3.ocd" }, { "type": "ocd", "file": "dic_ciba_4.ocd" }, { "type": "ocd", "file": "dic_hanzi.ocd" }] } }] }
-
但是不建议:多个
txt
对应一个json
文个,知道有多个txt
可以用一个json
文件调用就行;因为:关键字重复时,如果有,根据滤镜顺序,优先显⽰上⾯的内容,下⾯的不予显⽰。这⼀点是和多个
json
⽂件滤镜的相同关键字展⽰的效果不⼀样的。除非两txt
文件中没有重复的关键字。
-
-
在输入方案补丁中实现:
总共要添加以下几处(普通滤镜和编码滤镜只有滤镜细节定时有所不同):
-
添加滤镜(以添加名为
emoji
的滤镜为例):"engine/filters/@next1": simplifier@emoji
-
定义滤镜细节
- 普通滤镜
#定义emoji滤镜 emoji: opencc_config: es.json option_name: emoji tips: all #none无注释,char单字注释,all全部注释
- 编码滤镜(以名为
long_tangshi300
为例)
#唐诗三百 long_tangshi300: opencc_config: long_tangshi300.json option_name: long_tangshi300 show_in_comment: true #开启编码滤镜 comment_format: #编码滤镜正则处理 # - "xform/<br>/\n/" #编码滤镜内容换行。注意: 如果用于小狼毫,请将\n改为\r,否则无效 - "xform/<br>/\r/" #编码滤镜内容换行。注意: 如果用于小狼毫,请将\n改为\r,否则无效 - "xform/ / /" #编码滤镜内容显示空格 #上述带#号为编码滤镜模式工作选项, 普通滤镜直接在行首用#号屏蔽 tags: - abc tips: all #none无注释,char单字注释,all全部注释
-
添加滤镜开关
#emoji开关 "switches/@next1": name: emoji reset: 0 #初始状态,0关1开 states: ["off", "emoji"] #侯选栏显示内容,可省略,可更改
-
定义快捷键
#emoji快捷键 - {accept: "Control+Shift+E", toggle: emoji, when: always} #emoji开关
-
五、词库(主要用在拓展词库中)
(一)、如何拓展词库
Ⅰ、拓展一个词库
-
将词库文件
txt
更名为代码中name
后面的内容,再加上.dict.yaml
。比如:拼音为”luna_pinyin.sogou.dict.yaml“
,86五笔为wubi86.extended.dict.yaml
;最主要的就是以.dict.yaml
结尾,前面的内容用于在方案文件中调用,和词库中name
后面的内容。 -
词库里面主要由规则和内容组成,不同的输入方案规则是不同的,如:
-
拼音的
# Rime dictionary # encoding: utf-8 --- name: luna_pinyin.sogou version: "2015.12.24" sort: by_weight use_preset_vocabulary: true import_tables: - luna_pinyin ... 啊啊啊 a a a 1
-
五笔的
# 雪齋、瑾昀整理 # License: GPL --- name: wubi86.extended version: "0.1" sort: by_weight columns: - text - code - weight - stem encoder: exclude_patterns: - '^z.*$' rules: - length_equal: 2 formula: "AaAbBaBb" - length_equal: 3 formula: "AaBaCaCb" - length_in_range: [4, 10] formula: "AaBaCaZa" import_tables: - wubi86 ... 日日 1 晶晶
-
说明:
- 其中
length_in_range: [4, 10]
为最大能输出的词条长度,这里最多也就只能输出10个字的词条,也可以改成大一些的,如90等等; import_tables
下面的内容,是指此词库要引用使用的其它词库- 不同输入方案的规则可以到程序目录
Rime\weasel-0.14.3\data
进行参考
- 其中
-
-
最后在输入方案的补丁文件中引用就行了,比如:引用86五笔的拓展词库
patch: # 載入擴充詞庫 "translator/dictionary": wubi86.extended
Ⅱ、转化网络词库
-
想要使用网络词库可以到搜狗输入法官网或者是百度输入法的官网,下载对应的词库就行;
- 搜狗输入法官网:https://pinyin.sogou.com/dict/
- 百度输入法官网:https://mime.baidu.com/web/iw/index/
-
最后使用深蓝转化工具成一个
txt
文档,按照上面“拓展一个词库”的方式,就可以成功使用了
Ⅲ、拓展多个词库
-
与上面拓展一 个词库一样,只不过进行嵌套了;先将要使用的多个词库,在一个单独的词库中应用(也就是在
impot_tables
下面写入所用到的词库信息),再在输入方案的补丁引用就行。 -
下面以拼音为例,(注意不同 输入方案词库的规则是不同的)
-
新建文件“
luna_pinyin_simp.config.dict.yaml
”。在该文件中,添加如下内容(词库规则)。--- name: luna_pinyin_simp.config ##注意name和文件名一致 version: "2020.6.7" sort: by_weight use_preset_vocabulary: true # 此处为 输入法所用到的词库,既补充拓展词库的地方 import_tables: - luna_pinyin ...
-
luna_pinyin_simp.config.dict.yaml
文件即为我们后续用来管理词库的文件。 -
在
import_tales
后面写入其他词库的信息就行,比如要用luna_pinyin.sougou.dict.yaml
和luna_pinyin_simp.chaizi.dict.yaml
词库,此时luna_pinyin_simp.config.dict.yaml
就为--- name: luna_pinyin_simp.config version: "2020.6.7" sort: by_weight use_preset_vocabulary: true # 此处为 输入法所用到的词库,既补充拓展词库的地方 import_tables: - luna_pinyin.sougou #搜狗字库 - luna_pinyin #官方拼音字库 - luna_pinyin_simp.chaizi #拆字字库 ...
-
-
最后在输入方案补丁文件中引用就行了
# luna_pinyin_simp.custom.yaml patch: # 配置translator,便于管理词库 translator/dictionary: luna_pinyin_simp.config
-
最后是个人建议:没必要一次性挂载多个词库,自己够用就行!不然会很臃肿,备份和管理补丁文件会很麻烦。
(二)、拓展词库用法:
-
无码加词(五笔,仓颉使用),但建议在输入方案补丁中关闭局部调频功能使用
- 输入方案补丁文件中:
#关闭局部调频功能 # ↓ 开启自动调频功能(影响盲打体验,不建议开启) "translator/enable_user_dict": false
-
词库中:
# ↓ 扩展词库的用法一:「无码加词」 # 无编码词条直接拷贝进来、保存一下,就批量加入了,下面几首诗,可以「五笔词条」的方式打出 # 注意,末尾不可有符号。 #春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少 #红豆生南国,春来发几枝。愿君多采撷,此物最相思 #向晚意不适,驱车登古原。夕阳无限好,只是近黄昏 #故人西辞黄鹤楼,烟花三月下扬州。孤帆远影碧空尽,唯见长江天际流
- 以五笔为例,就可以四码输出扩展词库无码加词的诗句,注得去掉
#
号,前面的是指注释此行 - 效果截图:
- 以五笔为例,就可以四码输出扩展词库无码加词的诗句,注得去掉
-
编码输入
-
其是用深蓝转化工具,转化出来的就是编码输入
-
可以定义一些编码词条,类似于自定义短语那部分,
-
例子如下,去掉#号即可使用
#今夜鄜州月,闺中只独看。遥怜小儿女,未解忆长安。香雾云鬟湿,清辉玉臂寒。何时倚虚幌,双照泪痕干 wyof #清江一曲抱村流,长夏江村事事幽。自去自来堂上燕,相亲相近水中鸥。老妻画纸为棋局,稚子敲针作钓钩。但有故人供禄米,微躯此外更何求 iigg # 主词库中缺少的常用短语,个人信息等等,可如下快捷输入,删掉下面三行的「#」号,则可以定义在后面的「编码」输出 #北京市海淀区清华大学医学科学楼 addr #tsps_e@tsinghua.edu.cn mail #13552888888 tel
-
效果截图
-
-
局部调频
-
重码条目可以通过「词频」微调其排序,下诗默认排在其单字「暒」和「䗌」的后面,如果添加一个更大的词频,排序就将调前。
-
注意,中州韵码表的标准格式是,「词条」「编码」「词频」「造词码」,故下面的「词条」和「词频」之间,跨过了「编码」列,所以有「 2 」个英文状态下的TAB缩进符。
#日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天 90271400 # 单字「我」在「金」前,原因是「我」的词频大,给「金」调高到超过「我」,「金」就会前置了。 # 注意,「单字」是无法在「五笔词组规则」下编码的,所以给单字调频需要加上它的编码,以防「中州韵」程序产生困惑。最好拷主码表相应条目到此修改。 # 因为「主码表」和「扩展词库」是权级相等的关系,所以针对主表中已存在,你却想微调的部分,拷过来后,在这里定义个更大的频数,才会覆盖掉主表内容。 # 通常而言,形码的「单字序」是固定的,这是做到盲打的基本条件,除非创造新的形码方案,否则不建议变更主码表单字排序。 #我 q 90788800 trny #金 q 90788801 qqqq
-
-
魔改码表:
# 单行单义码表,直接拷入生效。例如,下是一些「二简第三重码字」,删了「#」号,即可生效。 #行 tg #合 wg #教 ft #政 gh #海 it #期 dw #真 fh #程 tk # 附言: # 「主码表」与「扩展词库」最终在「Librime」引擎中「合二为一」。 # 「扩展词库」可视为「主码表」的延伸与补充,两者权级平等,故遇着想改排序的重码,变更词频时,需要与主表对照。 # 数据无价,注意保存备份,可以定期保存,程序升级前,可以先取出,再覆盖回去。
六、结语
-
在这里十分感谢网上各位大佬的文章,和群中大佬的指点🌹🌹🌹
-
如果您觉得本文不错,愿意给我一些动力的话,请用手机扫描二维码即可向我打赏,你的鼓励将是我创作的最大动力
微信
支付宝