方案开关
Rime 输入方案通过 switches 声明可切换的状态,例如中英文、半角/全角、简繁转换和字符集范围。玉兔毫的方案
选单会读取已启用方案中的这些声明,并将可发现的选项显示在“记忆选项”列表中。
基本写法
一个两态开关可以写成:
switches:
- name: ascii_mode
reset: 0
states: [ 中文, ABC ]
abbrev: [ 中, A ]
其中:
name是开关标识,应该稳定且便于在配置中引用;reset是部署或重新载入时的初始状态索引;states是方案选单显示的完整状态名称;abbrev是启用缩写显示时使用的短名称。
需要多个固定选项时,可以使用 options:
switches:
- options: [ zh_trad, zh_simp, zh_hk, zh_tw ]
states: [ 傳統漢字, 简化字, 香港字形, 臺灣字形 ]
abbrev: [ 繁, 简, 港, 臺 ]
states 和 abbrev 的数量应与可选状态对应。选项标识会被其他配置引用,发布后不要随意改名;如果必须改名,
应在方案说明中写出迁移影响。
让方案选单记忆状态
方案选单的记忆列表写入 Rime 的 default.custom.yaml。例如:
patch:
switcher:
save_options:
- full_shape
- ascii_punct
- simplification
也可以直接在玉兔毫设置窗口的“输入方案与选单 → 方案选单”页面勾选。列表中的选项必须是已启用方案提供的开关 或由用户手动添加的自定义标识。
如果多个方案提供同一个开关,玉兔毫会把它们视为同一选项并显示相关来源。只有通过方案选单完成的切换才会参与 “记忆选项”机制;方案内部或其他按键绑定触发的切换不一定被记录。
与前端设置的边界
方案开关负责定义 Rime 的状态和候选逻辑,玉兔毫前端负责显示选单、接收按键和记忆状态。方案作者不应把候选窗
颜色、字体或布局写进 switches,这些内容属于 rabbit.custom.yaml 的 style 配置。
推荐的分工是:
- 方案文件定义开关名称、状态文本和状态变化后的引擎行为;
default.custom.yaml调整方案列表、选单快捷键和需要记忆的开关;rabbit.custom.yaml调整候选窗、预编辑和玉兔毫自身行为。
兼容性检查
发布方案前,至少检查:
- 开关在玉兔毫和另一个目标 Rime 前端中都能正常切换;
- 重新部署后初始状态符合
reset预期; - 状态名称和缩写在纵向堆叠、横向流式下都不会溢出;
- 被记忆的选项在切换方案、重启程序后仍符合说明;
- 删除或更名开关后,旧的
save_options配置不会造成误导。