山东大学软件工程应用与实践——RIME输入法配置文件分析

本文详细介绍了RIME输入法的配置文件格式、配置原理、配置文件的使用,包括.default.yaml、.custom.yaml、.bin文件的作用,以及词库的管理。还探讨了RIME的输入法引擎、方案定义、码表与词典、编译输入方案的过程,并提供了配置小鹤双拼方案和自定义短语的方法。

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

2021SC@SDUSC

一.配置文件格式

  • .yaml文件是配置文件,是我们主要修改的一块.例如(default.yaml 是输入法配置文件夹, luna_pinyin.schema.yaml,是luna(明月)输入方案的配置文件)
  • .custom.yaml是用户用来自定义配置的内容.
  • .bin文件是rime输入法自动生成的, 不需要去动.
  • .table.bin 是生成的词库文件(在重新部属的时候会自动生成需要导入词库的.table.bin文件.)

二.配置原理

在输入法重新部属的时候, 会所需要的设置文件, 词库文件等。在生成default.yaml的时候, 会去同名的default.custom.yaml中读取设置, 如果与默认设置冲突, 则以用户设置为准, 然后再生成改动过的default.yaml文件。
这和Python中的类的继承顺序是一样的. 会先调用子类,冲突项目使用子类, 如未设定 则读取父类相关设定。

三.配置简介

配置分为三个方面。

  • 输入法方面: 根据default.yaml 创建default.custom.yaml
  • 输入方案方面: 根据luna_pinyin.schema.yaml 创建luna_pinyin.custom.yaml
  • 词库方面: 手动创建 xxx.dict.yaml 文件.

##这些个文件是最重要的, 保存着你对输入法的自己的定制.。只要保存好自己的设置文件和词库文件, 配置里面的文件都删掉也都无所谓, 重新布署之后又会生成默认文件。只要在rime重新布署的时候发现用户的配置文件, 就会改写默认配置。

关于配置文件的格式语法:
配置文件的语法遵照yaml语言。
default.custom.yaml和luna_pinyin.custom.yaml这两个文件的书写格式和对应文件default.yaml, luna_pinyin.yaml几乎是一样的。不过需要在文件头增加patch: 然后之中写入的配置,较原文件增加一个单位的缩进,对应于patch:.(yaml中缩进为两个空格). # 表示注释, 可以出现行中任意位置, 之后的内容不会被解释器解释。

1.Rime 的各种配置,均是由 .yaml 文件所定义。
2.yaml 是一种标记语言。.yaml 文件实际上是文本文档。可使用记事本、或 Emeditor 等进行编辑。
3.对 Rime 进行自定义,是通过对 .custom.yaml 文件修改达成。不同的 .custom.yaml 文件,控制不同的功能实现。 .custom.yaml 实际上是相当于对 .yaml 文件打补丁,在重新部署后,会将 .custom.yaml 中的内容写入 .yaml 文件中,完成自定。
例一: weasel.yaml 是常规设置,主要控制托盘图标、候选词横竖排列、界面配色等等功能。那么,我们需要定制界面配色,只需在 weasel.custom.yaml 中修改,重新部署后就可实现。
例二: default.yaml 是默认设置,主要控制快捷键、按键上屏等等。同样,作修改就编辑 default.custom.yaml 文件即可。
例三:以上是全局设置,亦即不论使用何种输入方案,均起作用。 double_pinyin_flypy.custom.yaml 这种则是输入法方案设置。主要实现特殊标点符号、词库等功能。是针对特定输入方案的配置。

在“部署”操作时,将用到这里的输入方案源文件、并结合用户定制的内容来编译预设输入方案。

用户资料夹 则包含为用户准备的内容,如:

〔全局设定〕 default.yaml

〔发行版设定〕 weasel.yaml

〔预设输入方案副本〕 <方案标识>.schema.yaml

※〔安装信息〕 installation.yaml

※〔用户状态信息〕 user.yaml

五.输入法引擎与功能组件

Rime 输入法的工作流程:

按键消息→后台“服务”→分配给对应的“会话”→由“方案选单”或“输入引擎”处理……

这里要点是,有会话的概念:多窗口、多线操作,同时与几人聊天时,有好几组会话, 每一组会话中都有一部输入引擎完成按键序列到文字的变换。

Rime 可以在不同会话里使用不同输入方案。因为有“方案选单”。 方案选单本身可响应一些按键。但由于他不会写字的缘故,更多时候要把按键递给同一会话中的“输入引擎”继续处理。 方案选单的贡献,就是给用户一个便捷的方案切换介面,再把用户挑中的输入方案加载到输入引擎。

输入引擎的工作流程:

加载输入方案、预备功能组件;各就位之后就进入处理按键消息、处理按键消息……的循环。

响应各种按键、产生各类结果的工作,由不同的功能组件分担。

#luna_pinyin.schema.yaml
 ...

engine:                    # 输入引擎设定,即挂接组件的“处方”
  processors:              # 一、这批组件处理各类按键消息
    - ascii_composer       # ※ 处理西文模式及中西文切换
    - recognizer           # ※ 与 matcher 搭配,处理符合特定规则的输入码,如网址、反查等
    - key_binder           # ※ 在特定条件下将按键绑定到其他按键,如重定义逗号、句号爲候选翻页键
    - speller              # ※ 拼写处理器,接受字符按键,编辑输入码
    - punctuator           # ※ 句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值