方案配置与 Custom 补丁机制
在为万象切换全拼、双拼或其他输入类型之前,建议先理解 Rime 的方案文件与 Custom 补丁之间是如何配合工作的。
万象没有为每一种拼音输入方式单独维护一套完整主方案,而是通过统一的主方案配合 .custom.yaml 补丁完成切换。理解这一点之后,后续修改输入类型、挂载方案和维护个人配置都会更清晰。
1. 两种常见的方案管理方式
传统方式:多个独立方案文件
一种常见做法,是把全拼、自然码、小鹤双拼等输入类型分别制作成独立的方案文件,例如:
zrm.schema.yaml
flypy.schema.yaml
需要启用某个方案时,再通过全局配置中的 schema_list 挂载:
这种方式的特点是不同输入类型彼此独立,文件关系比较直观,但当多个方案需要共享词库、Lua、反查或其他配置时,也容易出现重复维护。
万象方式:单主方案 + Custom Patch
万象主要使用统一的主方案:
wanxiang.schema.yaml
或:
wanxiang_pro.schema.yaml
全拼、自然码、小鹤双拼等输入类型并不是分别对应一套完整主方案,而是通过 Rime 的 Custom Patch 修改主方案中的相关节点。
这样可以让词库、Lua、反查、英文和混输等公共配置继续复用,只针对需要变化的部分进行补丁覆盖。
进一步阅读:本文主要说明输入类型切换和常用 Custom 文件之间的关系。如果需要自行编写更复杂的补丁,可以继续阅读 [Custom Patch 方法论]。
2. 全局方案挂载与 default.custom.yaml
万象通常只需要在前端中启用 万象拼音 或 万象拼音 Pro 主方案。英文、T9 等附属方案根据实际结构由主方案调用或挂接,一般不需要全部作为日常输入方案单独切换。
部分 Rime 前端提供图形化的“方案选择”界面。其最终效果通常会体现在全局方案列表配置中,也可以通过 default.custom.yaml 手动维护。
例如:
# default.custom.yaml
patch:
schema_list:
- schema: wanxiang # 万象主方案
- schema: wanxiang_english # 独立英文方案
- schema: wanxiang_t9 # T9 方案
一个 Custom 文件只保留一个 patch 顶层节点
在同一个 .custom.yaml 文件中,建议只保留一个顶层 patch:,需要修改的内容统一写在这个节点下面。
不要在同一个文件中重复写多个同名的顶层 patch:。YAML 中重复键可能导致前面的内容被覆盖或解析结果与预期不一致。
3. 配置覆盖关系与基本原则
.custom.yaml 的作用,是在原始配置文件基础上追加或覆盖个人修改。
例如:
wanxiang.custom.yaml用于修改wanxiang.schema.yamldefault.custom.yaml用于修改default.yamlsquirrel.custom.yaml用于修改鼠须管对应配置weasel.custom.yaml用于修改小狼毫对应配置
因此,更适合把它理解为:
原始配置提供默认值,.custom.yaml 在部署时对对应配置进行补丁修改。
Custom 文件通常由用户自己维护,常规更新方案文件时不会主动覆盖这些个人补丁。
文件位置与修改原则
-
Custom 文件应放在 Rime 用户根目录:例如
wanxiang.custom.yaml应与wanxiang.schema.yaml位于同一级目录。 -
不要直接修改
custom/示例目录中的文件:万象提供的custom/文件夹主要用于存放示例模板。仅修改其中的模板文件,并不会自动成为当前正在使用的根目录补丁。 -
斜杠指令本质上也是在生成或更新 Custom 配置:例如
/zrm等指令,会根据预设模板生成或调整对应的根目录 Custom 文件。
因此,通过模板或指令生成配置后,仍建议打开实际使用的 .custom.yaml 检查内容,只保留自己需要的部分。
常见 Custom 文件对应关系:
wanxiang.custom.yaml→wanxiang.schema.yaml,主要负责主方案拼写和相关逻辑default.custom.yaml→default.yaml,主要负责全局方案列表和公共配置squirrel.custom.yaml→ 鼠须管相关配置weasel.custom.yaml→ 小狼毫相关配置
4. 手动切换输入类型:同步修改四个 Custom 文件
万象除主方案外,还包含英文、混输和反查等配套方案。
如果不使用斜杠指令,而是手动把输入类型从全拼改为自然码等方案,需要同步检查以下四个 Custom 文件,使各部分使用一致的拼音类型。
文件: wanxiang.custom.yaml
patch:
speller/algebra:
__patch:
#- wanxiang_algebra:/模糊音 # 如需模糊音,可在这里引用
- wanxiang_algebra:/base/自然码 # 修改为需要的输入方案
可选名称:全拼、自然码、自然龙、汉心龙、小鹤双拼、搜狗双拼、微软双拼、智能ABC、紫光双拼、国标双拼、拼音加加、乱序17。
文件: wanxiang_english.custom.yaml
patch:
speller/algebra:
__include: wanxiang_algebra:/english/通用规则
__patch: wanxiang_algebra:/english/自然码 # 与主方案保持一致
可选名称:全拼、自然码、小鹤双拼、微软双拼、搜狗双拼、智能ABC、紫光双拼、拼音加加、自然龙、汉心龙。
完成四个 Custom 文件的修改后,执行一次 【重新部署】,使新的拼音类型配置统一生效。
如果平时主要通过 /zrm、/flypy 等斜杠指令切换,这些文件通常会由相应逻辑协同更新;手动修改时,则需要特别注意四处配置是否保持一致。
Custom 补丁需要随重大版本变化进行检查
.custom.yaml 通常不会被万象的常规更新直接覆盖,但这并不意味着一份 Custom 配置可以永久不再维护。
如果后续版本对主方案进行了较大的结构调整,例如节点名称、调用路径或方案组织方式发生变化,旧的 Custom Patch 可能无法继续匹配新的配置结构。
因此,在跨较大版本更新时,建议阅读 Release 页面中的更新说明,特别关注是否存在 Breaking Changes(破坏性变更)。
.custom.yaml 属于用户自己的配置文件。万象的常规更新不会主动替用户重写其中的个性化内容,因此涉及结构变化时,需要由用户根据新版配置自行调整对应补丁。