〖小狼毫〗小狼毫使用教程『完善版本』

本文是一篇关于小狼毫输入法的详细教程,涵盖了从下载安装到自定义输入方案、脚本、短语,以及词库拓展和滤镜设置的全过程。适合希望个性化配置输入法的用户参考,内容包括各个配置文件的用途和修改方法,并提供相关资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、声明

  • 因为我这里只有win10电脑,就以win10系统电脑五笔86输入方案为例,
  • 其他系统的可以这此为基础进行参考;
  • 个人建议先在虚拟机里配置好,再移到宿主机上(大佬除外);不要为我为什么知道。
  • 以下内容,是我整理得到,参考了很多大佬的文章,若有侵权,请联系删除!谢谢!
  • B站对应的视频教程:【不知何处雨已觉此间凉的个人空间-哔哩哔哩】 https://b23.tv/gtYhIHR

二、下载与安装

  1. 首先要到小狼毫官网,进行下载小狼毫:https://rime.im/;点击:下载;下载对应系统的版本就行,

  2. 安卓方面建议:中文输入法(无障碍版),

  3. 我这里以安装到桌面为例;

    补丁文件我放在程序同目录下的(config)「用户自定义文件夹」中

    我这里准备了两份文件,一份是我已经配置好的补丁,一份是补丁模板;

    先演示我配置好的文件吧!

    后面以我配置好的补丁为例,在模板上进行修改配置;

三、输入方案、lua脚本、自定义短语

  1. 这里先说一下:后面会看到几文件后缀,如:
    xxx.custom.yaml:是给一个文件打补丁,比如:皮肤补丁(weasel.custom.yaml),输入方案补丁(wubi86.custom.yaml)、默认设置补丁(default.custom.yaml
    xxx.shchema.yaml:输入方案通常与xxx.dict.yaml一起使用
    yaml为后缀的文件中#代表注释; 以空格表示上下级关系,下级比上级在前多了两个空格;
    xxxxx.userdb(文件夹)后缀:是指用户词库,删掉后不影响使用 (我这里以86五笔为例,其他可以对照进行参考)

  2. 在默认设置补丁(default.custom.yaml

    • 可设置候选词个数。(注意缩进)

      #如设置候选词个数9个
      "menu/page_size": 9
      
  3. 在皮肤补丁(weasel.custom.yaml)中可以设置水平还坚直显示

    #命令如下
      "style/horizontal": true                    #横竖排
     # "style/font_face": "Microsoft YaHei Mono"    #微软雅黑
     # "style/font_point": 13                     #字号13
    

(一)、输入方案

  1. 输入方案:配置小狼毫没有自带的输入方案,如:五笔、英文、仓颉六代;

  2. 把五笔输入方案丢到用户目录下(config),

    然后开始菜单(右下角),找到小狼毫输入法设定,

    找到对应的输入方案打勾就行,点“中”,选择皮肤,接着点“中”就行了;

(二)、 Lua脚本:

  1. lua脚本文件丢到用户目录下;

    如果有多个lua脚本文件,可以把合并成一个,复制一个文件到另一个文件里面的最后面,保存即可;

  2. 补充一点:在lua脚本中:input=="XXXX",中的XXXX为显示所需的编码;Candidate后面 中的内容表示一个候选项;过多的就不说了;

  3. 把输入方案的补丁模板,放到用户目录下;

    将补丁文件更名为自己想要实现的输入方案即可,

    如:86五笔就为:wubi86.custom.yaml;

    拼音就为:luna_pinyin_simp.custom.yaml。后面更改什么就在这个补丁中修改就行了;

    在补丁文件中,加入这一句(注意缩进):

     "engine/translators/@before 0": lua_translator@date_translator #表示`lua`脚本中的`date_translator函数;
    
  4. 效果截图:

(三)、自定义短语:

  1. 在补丁文件中加这一句(注意缩进):

    "engine/translators/@before 1": table_translator@custom_phrase
    
  2. 具体的细节在补丁文件的后面进行定义:

    #自定义短语
    custom_phrase:
    dictionary: ""
    user_dict: custom_phrase
    db_class: stabledb
    enable_completion: false
    enable_sentence: false
    initial_quality: 1
    
  3. 然后在用户目录下建立一个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
        
  4. 这里提一句,这里完成的就是一个码表转化的功能,类似于词库(dict)的功能;

    后面会说到,当自定义多时,就可以加到词库(dict文件)

  5. 也可以调用其他输入方案的词库进行混输,

    如:中英文混输,这样就不用切换输入法了。中文不同方案混输就算了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
      

四、滤镜(普通、编码)

  1. 滤镜都是丢到程序目录的Rime\weasel-0.14.3\data\opencc目录下;

    一般包含txtjson后缀的文件,可能还会有ocd后缀的文件;

  2. 滤镜又可分为普通滤镜和编码滤镜,二者在txt内容和补丁文件中的定义和显示效果也是不同的。

    • 普通滤镜:所谓普通滤镜,就是类似简繁转换效果的滤镜。滤镜相关内容直接出现在侯选项⾥对应位置,可以和正常的侯选项⼀样操作。如果滤镜关键字对应内容有多项,多项内容将在原滤镜关键字位置插⼊,原有的侯选项将排到后⾯
      • 它的优点是可以⼀对多,也就是⼀个滤镜项可以对应多个滤镜内容,中间以空格分隔。⽽且多个滤镜的相同关键字内容可以同时存在,缺点是⽆法显⽰空格和换⾏。因为空格是它的分隔符,换⾏更不⽤说了
    • 编码滤镜:指在编码区显⽰的滤镜。推荐⽤途:适⽤于⼀切需要多⾏及排版的内容,如唐诗宋词,词典类以及带⽬录性质的内容.原理:通过滤镜转换对应条⽬的编码,使⽤正则式使编码变形,形成多⾏和带空格等普通滤镜⽆法形成的效果;
      • 编码滤镜不会占⽤侯选条⽬位置,⽽是在滤镜关键字编码区出现的这就是它的优点,可以通过编码区正则变换显⽰空格和换⾏。缺点就是制作滤镜条⽬内容时不能有真正的空格。如果有,空格后⾯的内容会省略,也就是不会显⽰
  3. 先说txt文件,再说json文件,然后再到补丁中的定义吧!

    • 普通滤镜的txt

      格式:滤镜关键字\t滤镜内容1 滤镜内容2

      说明:关键字为,你输入对应的关键字就会显示滤镜内容,但有时不会显示是为什么呢?这说明你的输入方案没有这个关键字,也就是词、字、成语、字母等等,这个后面词库那里会说;滤镜显示内容,以空格分隔,每个空格后内容代表一个独立的滤镜内容。

      同时一个txt文件里面不要有重复的滤镜关键字,否则无法正常使用。

      如下:

      大小 大小 测试

      百度 百度 badu

      邮箱 邮箱 xxx@163.com xxx@aliyun.com

    • 编码滤镜的txt

      <br>/\/\<br>\  /<br> &nbsp&nbsp\/

      其中<br>代表换行,&nbsp代表空格

  4. json文件两种滤镜没区别。

    json后缀的文件是用来读取txt文件中内容的,jsontxt对应有以下几种:

    • 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文件中没有重复的关键字。

  5. 在输入方案补丁中实现:

    总共要添加以下几处(普通滤镜和编码滤镜只有滤镜细节定时有所不同):

    1. 添加滤镜(以添加名为emoji的滤镜为例):

      "engine/filters/@next1": simplifier@emoji
      
    2. 定义滤镜细节

      1. 普通滤镜
      #定义emoji滤镜
      emoji:
      opencc_config: es.json
      option_name: emoji
      tips: all #none无注释,char单字注释,all全部注释
      
      1. 编码滤镜(以名为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/&nbsp/ /" #编码滤镜内容显示空格
      #上述带#号为编码滤镜模式工作选项, 普通滤镜直接在行首用#号屏蔽
          tags:
            - abc
          tips: all #none无注释,char单字注释,all全部注释
      
    3. 添加滤镜开关

      #emoji开关
        "switches/@next1": 
          name: emoji
          reset: 0 #初始状态,0关1开
          states: ["off", "emoji"]  #侯选栏显示内容,可省略,可更改
      
    4. 定义快捷键

      #emoji快捷键
      - {accept: "Control+Shift+E", toggle: emoji, when: always} #emoji开关
      

五、词库(主要用在拓展词库中)

(一)、如何拓展词库

Ⅰ、拓展一个词库

  1. 将词库文件txt更名为代码中name后面的内容,再加上.dict.yaml。比如:拼音为”luna_pinyin.sogou.dict.yaml“,86五笔为wubi86.extended.dict.yaml;最主要的就是以.dict.yaml结尾,前面的内容用于在方案文件中调用,和词库中name后面的内容。

  2. 词库里面主要由规则和内容组成,不同的输入方案规则是不同的,如:

    • 拼音的

      # 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 进行参考
  3. 最后在输入方案的补丁文件中引用就行了,比如:引用86五笔的拓展词库

    patch:  # 載入擴充詞庫
      "translator/dictionary": wubi86.extended
    

    Ⅱ、转化网络词库

  4. 想要使用网络词库可以到搜狗输入法官网或者是百度输入法的官网,下载对应的词库就行;

    • 搜狗输入法官网:https://pinyin.sogou.com/dict/
    • 百度输入法官网:https://mime.baidu.com/web/iw/index/
  5. 最后使用深蓝转化工具成一个txt文档,按照上面“拓展一个词库”的方式,就可以成功使用了

Ⅲ、拓展多个词库

  1. 与上面拓展一 个词库一样,只不过进行嵌套了;先将要使用的多个词库,在一个单独的词库中应用(也就是在impot_tables下面写入所用到的词库信息),再在输入方案的补丁引用就行。

  2. 下面以拼音为例,(注意不同 输入方案词库的规则是不同的)

    • 新建文件“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.yamlluna_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	  #拆字字库
      ...
      
  3. 最后在输入方案补丁文件中引用就行了

    # luna_pinyin_simp.custom.yaml
    patch:
    # 配置translator,便于管理词库
    	translator/dictionary: luna_pinyin_simp.config
    
  4. 最后是个人建议:没必要一次性挂载多个词库,自己够用就行!不然会很臃肿,备份和管理补丁文件会很麻烦。

(二)、拓展词库用法:

  1. 无码加词(五笔,仓颉使用),但建议在输入方案补丁中关闭局部调频功能使用

    • 输入方案补丁文件中:
    #关闭局部调频功能
        # ↓ 开启自动调频功能(影响盲打体验,不建议开启)
        "translator/enable_user_dict": false
    
    • 词库中:

      # ↓ 扩展词库的用法一:「无码加词」
      # 无编码词条直接拷贝进来、保存一下,就批量加入了,下面几首诗,可以「五笔词条」的方式打出
      # 注意,末尾不可有符号。
      
      #春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少
      #红豆生南国,春来发几枝。愿君多采撷,此物最相思
      #向晚意不适,驱车登古原。夕阳无限好,只是近黄昏
      #故人西辞黄鹤楼,烟花三月下扬州。孤帆远影碧空尽,唯见长江天际流
      
      • 以五笔为例,就可以四码输出扩展词库无码加词的诗句,注得去掉#号,前面的是指注释此行
      • 效果截图:
  2. 编码输入

    • 其是用深蓝转化工具,转化出来的就是编码输入

    • 可以定义一些编码词条,类似于自定义短语那部分,

    • 例子如下,去掉#号即可使用

      #今夜鄜州月,闺中只独看。遥怜小儿女,未解忆长安。香雾云鬟湿,清辉玉臂寒。何时倚虚幌,双照泪痕干	wyof
      #清江一曲抱村流,长夏江村事事幽。自去自来堂上燕,相亲相近水中鸥。老妻画纸为棋局,稚子敲针作钓钩。但有故人供禄米,微躯此外更何求	iigg
      
      #  主词库中缺少的常用短语,个人信息等等,可如下快捷输入,删掉下面三行的「#」号,则可以定义在后面的「编码」输出
      
      #北京市海淀区清华大学医学科学楼	addr
      #tsps_e@tsinghua.edu.cn	mail
      #13552888888	tel
      
      
    • 效果截图

  3. 局部调频

    • 重码条目可以通过「词频」微调其排序,下诗默认排在其单字「暒」和「䗌」的后面,如果添加一个更大的词频,排序就将调前。

    • 注意,中州韵码表的标准格式是,「词条」「编码」「词频」「造词码」,故下面的「词条」和「词频」之间,跨过了「编码」列,所以有「 2 」个英文状态下的TAB缩进符。

      #日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天		90271400
      # 单字「我」在「金」前,原因是「我」的词频大,给「金」调高到超过「我」,「金」就会前置了。
      # 注意,「单字」是无法在「五笔词组规则」下编码的,所以给单字调频需要加上它的编码,以防「中州韵」程序产生困惑。最好拷主码表相应条目到此修改。
      # 因为「主码表」和「扩展词库」是权级相等的关系,所以针对主表中已存在,你却想微调的部分,拷过来后,在这里定义个更大的频数,才会覆盖掉主表内容。
      # 通常而言,形码的「单字序」是固定的,这是做到盲打的基本条件,除非创造新的形码方案,否则不建议变更主码表单字排序。
      
      #我	q	90788800	trny
      #金	q	90788801	qqqq
      
  4. 魔改码表:

    # 单行单义码表,直接拷入生效。例如,下是一些「二简第三重码字」,删了「#」号,即可生效。
    
    #行	tg
    #合	wg
    #教	ft
    #政	gh
    #海	it
    #期	dw
    #真	fh
    #程	tk
    
    # 附言:
    # 「主码表」与「扩展词库」最终在「Librime」引擎中「合二为一」。
    # 「扩展词库」可视为「主码表」的延伸与补充,两者权级平等,故遇着想改排序的重码,变更词频时,需要与主表对照。
    # 数据无价,注意保存备份,可以定期保存,程序升级前,可以先取出,再覆盖回去。
    
    

六、结语

  1. 在这里十分感谢网上各位大佬的文章,和群中大佬的指点🌹🌹🌹

  2. 如果您觉得本文不错,愿意给我一些动力的话,请用手机扫描二维码即可向我打赏,你的鼓励将是我创作的最大动力

    微信
    请添加图片描述

    支付宝
    请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值