引导键特殊模式
引导键特殊模式允许你在码表方案下,按下一个"引导键"临时进入另一套独立的小型码表进行输入,完成后自动退出回到原方案。常见用途:快速符号(快符)、生僻字、专业术语缩写等。
工作原理
- 正常输入时,按下配置的引导键(如
\)进入对应特殊模式:编码为空时直接进入;已有候选时先上屏当前高亮候选,再进入模式 - 候选窗口显示模式徽标(如"快符"),此时输入的字符在该模式的码表中检索
- 上屏一个候选后自动退出,回到原方案继续输入;也可按
Esc手动退出
与快捷输入的区别
快捷输入(; 触发)内置了数字转换、计算器、日期等功能,使用内置逻辑处理。
特殊模式是完全自定义的码表,适合放置任意词条,更灵活。
配置方式
特殊模式 = 对一个真实方案的引用
特殊模式条目本身只描述"用哪个引导键、显示什么名字、触发哪个方案";真正的码表和全码上屏策略都定义在被引用的方案文件 <方案id>.schema.toml 里。被引用的方案不会出现在正常的方案切换列表中,只在按下引导键时懒加载触发。
特殊模式通过全局配置文件 config.toml 的 [[schema.special_modes]] 数组配置,支持定义多组:
[[schema.special_modes]]
id = "quick_symbols" # 模式唯一 ID(必填)
name = "快符" # 候选窗口显示的模式名(必填)
short_name = "符" # 模式指示短称(可选;留空取 name 首字)
trigger_keys = ["backslash"] # 引导键列表(必填,至少一个);backslash=反斜杠键
schema = "quick_symbols" # 引用的方案 id,其 <id>.schema.toml 提供码表与全码策略(必填)
hotkey = "" # 专用直达热键(可选,如 "ctrl+shift+u";空=不注册)直达热键
除引导键外,每个特殊模式还可配置一个专用直达热键(hotkey,形如 "ctrl+shift+u"),与引导键共存:按热键直接进入该模式,且组合区不写入引导符(引导键进入时首位是引导符,热键进入则从空编码开始)。仅中文模式下生效。临时拼音也支持同样的直达热键(input.temp_pinyin.hotkey)。
也就是说,要新建一个特殊模式,你需要两步:
- 在
%APPDATA%\WindInput\schemas\下准备一个真实方案文件quick_symbols.schema.toml(含它的[engine.codetable]与所引用的码表词库),方案的写法见自定义方案。 - 在
[[schema.special_modes]]里用schema = "quick_symbols"引用它,并指定引导键。
特殊模式的全码 / 自动上屏行为由被引用方案的 [engine.codetable] 决定(见下文),不在特殊模式条目里单独配置。
引导键可选值
引导键取键名,常用符号键如下;此外还支持单个字母 a–z 作为引导键(如 z):
| 键名 | 按键 |
|---|---|
backslash | \ |
backtick / grave | ` |
semicolon | ; |
quote | ' |
comma | , |
period | . |
slash | / |
lbracket | [ |
rbracket | ] |
按键冲突
若引导键已被次选键、临时拼音等功能占用,设置工具会提示冲突。同一个键只能分配给一项功能。
自动上屏策略
特殊模式输入时是否自动上屏,由被引用方案的 [engine.codetable] 全码策略决定(与该方案作为普通方案使用时一致):
- 全码唯一自动上屏(prefix-free 语义):候选唯一且无更长前缀时自动上屏,适合符号、常用词。
- 固定码长自动上屏:达到指定码长且候选唯一时自动上屏,适合定长码表。
- 手动选择:始终按数字 / 空格选择,适合需要精确控制时。
码表文件格式
特殊模式的码表就是它引用的方案所加载的码表词库。码表词库为 Rime codetable 格式(.dict.yaml),放在 %APPDATA%\WindInput\schemas\ 下,由方案文件 <id>.schema.toml 通过 dictionaries 引用:
# quick_symbols.dict.yaml
---
name: quick_symbols
version: "1.0"
...
# 编码<Tab>文字[<Tab>权重]
bj 北京
sh 上海
zz ⚡
pf 🔥多模式示例
同一配置文件中定义多个互不干扰的特殊模式(各自引用一个真实方案):
[[schema.special_modes]]
id = "symbols"
name = "快符"
short_name = "符"
trigger_keys = ["backslash"]
schema = "quick_symbols" # 引用 quick_symbols.schema.toml
[[schema.special_modes]]
id = "rare_chars"
name = "生僻"
short_name = "僻"
trigger_keys = ["slash"]
schema = "rare_chars" # 引用 rare_chars.schema.toml注意事项
- 修改
[[schema.special_modes]]配置后,保存设置工具或直接编辑config.toml均可,需要重载配置后生效 - 被引用方案在首次按下引导键时才懒加载;大型码表首次进入会有一次加载耗时
