跳转至

快符 (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(成对符号包裹);快符更适合处理“触发后直接输出一段固定内容”的场景。


六、配置时需要注意什么?

  1. 先确定触发形式
    使用默认的 a/,还是改成 ;a/a 等其他形式。

  2. 同步修改识别规则
    如果更换引导方式,应同步检查 recognizer/patterns/quick

  3. 保持捕获组可用
    Lua 需要取得对应的字母,不能只让表达式整体匹配,却丢失实际映射键。

  4. 避免与其他功能冲突
    /; 等符号可能同时承担辅助码、斜杠指令、标点或其他功能,应结合当前方案的按键设计选择触发方式。

  5. 修改后重新部署
    保存 .custom.yaml 后,需要重新部署 Rime 才能应用新的快符配置。

快符适合解决高频固定符号和短文本的快速上屏问题,触发方式与映射内容都可以按个人习惯调整。