快符 (Quick Symbol):快速输入常用符号与文本
快符用于把单个字母映射为常用符号、组合标点或固定文本,通过简短的触发编码直接上屏。
在日常输入中,频繁打开符号面板或切换标点状态会增加额外操作。万象通过 Lua 实现快符功能,可以将 26 个英文字母分别映射为符号、Emoji、固定文本,或用于重复上一次上屏内容。
默认情况下,输入“字母 + /”即可触发对应快符。
一、基本触发方式
默认规则:字母 + /
默认配置下,快符使用 单个小写字母 + / 作为触发形式。
-
单个符号:例如输入
a/,可以直接上屏预设的!。 -
其他标点:例如输入
w/,可以直接上屏预设的?。 -
组合符号:某个按键也可以映射为多个字符,例如将
z/设置为一次上屏。”。 -
重复上屏:如果某个字母的映射值设置为
"repeat",触发后会重复上一次记录的上屏内容。
快符并不要求映射值只能是单个标点,也可以根据需要设置为 Emoji、组合符号或较长文本。
二、自定义快符映射
快符相关配置位于方案的 quick_symbol_text 节点中,可以通过 wanxiang.custom.yaml 或当前方案对应的 .custom.yaml 进行 Patch。
主要配置参数
-
trigger:用于判断快符输入格式,并通过捕获组提取对应的字母键。默认形式为^([a-z])/$,即“小写字母在前、斜杠在后”。 -
symkey:字母与实际输出内容之间的映射表。映射值可以是符号、Emoji、组合字符或其他文本。 -
"repeat":属于特殊值。当某个symkey被设置为"repeat"时,该按键用于重复上一次记录的上屏内容。
如果只是修改某几个字母的映射,不需要重写整套 symkey,直接 Patch 对应子节点即可。
三、修改触发方式
除了默认的 a/、b/ 这种尾部引导形式,也可以根据自己的键盘习惯调整触发规则。
例如,希望改成:
;a
;s
;q
即使用分号作为前置引导,可以同时修改 quick_symbol_text/trigger 与对应的 recognizer 规则:
patch:
# 将默认的“字母 + /”改成“; + 字母”
quick_symbol_text/trigger: "^;([a-z])$"
# 让 ;a、;b ... ;z 保持在 Rime 编码中,不直接上屏
recognizer/patterns/quick: "^;[a-z]$"
# 自定义字母映射
quick_symbol_text/symkey/a: "🔥" # 输入 ;a,上屏 🔥
quick_symbol_text/symkey/s: "(" # 输入 ;s,上屏 (
quick_symbol_text/symkey/d: ")" # 输入 ;d,上屏 )
quick_symbol_text/symkey/q: "repeat" # 输入 ;q,重复上一次上屏内容
修改 trigger 时要同步检查 recognizer
quick_symbol_text/trigger 决定 Lua 如何识别快符编码,而 recognizer/patterns/quick 决定这段输入是否继续交给 Rime 处理。
如果只修改 trigger,却没有同步调整对应的 recognizer 规则,新的引导字符可能被前端直接上屏,导致 Lua 无法收到完整编码。
因此,修改触发形式时,应同时检查这两个节点是否匹配。
四、触发规则中的捕获组
默认规则:
^([a-z])/$
可以拆成以下几部分理解:
^:从输入开头开始匹配。([a-z]):匹配一个小写字母,并将这个字母作为捕获结果。/:要求字母后面紧跟斜杠。$:匹配到输入末尾结束。
因此:
a/
会提取出字母 a,随后 Lua 再根据 symkey/a 查找对应的输出内容。
如果改成:
^;([a-z])$
则表示:
- 输入必须以
;开始; - 后面跟一个小写字母;
- Lua 从捕获组中取得这个字母。
例如:
;a
最终仍然提取 a,并读取:
quick_symbol_text/symkey/a
对应的映射值。
修改规则时保留正确的捕获内容
快符脚本需要从触发编码中取得用于查询 symkey 的字母。
因此,自定义触发规则时,不只是要让整段编码能够匹配,还要确保捕获组仍然返回正确的字母。
如果改变了捕获组的位置或数量,而脚本仍按原来的方式读取结果,就可能出现规则能够匹配,但无法找到对应映射的情况。
五、适合映射哪些内容?
快符并不限于常规标点,可以根据个人输入场景自由配置。
例如:
- 常用中文标点:
!、?、;、: - 组合句末符号:
。”、!”、?” - 成对符号的一侧:
(、)、【、】 - Emoji:例如
"🔥" - 固定短文本:适合经常重复输入的短字符串
- 重复上屏:通过
"repeat"调用上一次记录的内容
如果需要输入的是“在候选两侧自动添加一对符号”,则更适合使用 Paired Symbols(成对符号包裹);快符更适合处理“触发后直接输出一段固定内容”的场景。
六、配置时需要注意什么?
-
先确定触发形式
使用默认的a/,还是改成;a、/a等其他形式。 -
同步修改识别规则
如果更换引导方式,应同步检查recognizer/patterns/quick。 -
保持捕获组可用
Lua 需要取得对应的字母,不能只让表达式整体匹配,却丢失实际映射键。 -
避免与其他功能冲突
/、;等符号可能同时承担辅助码、斜杠指令、标点或其他功能,应结合当前方案的按键设计选择触发方式。 -
修改后重新部署
保存.custom.yaml后,需要重新部署 Rime 才能应用新的快符配置。