英文语句流与混合输入
万象支持英文连续输入以及中、英、数字、符号混合编码。在中文主方案中,可以直接处理英文单词、英文语句以及
AD钙奶、Type-C等混合内容,减少频繁切换输入状态的操作。
万象的英文与混合输入功能既可以挂接到主方案中使用,也可以作为独立方案运行。除英文词汇本身外,还针对连续输入时的空格、大小写和混合编码进行了相应处理。
一、英文连续输入
连续输入英文时,主要需要处理三个问题:单词之间的空格、大小写形态,以及编码尚未完整匹配时的候选状态。
1. 智能加空格 (Smart Spacing)
英文方案提供自动空格处理,可以根据连续输入状态在单词之间补充空格。
通过配置可以选择以下 4 种模式:
-
off:关闭自动空格。 -
before:在符合条件时向当前内容前方补充空格。 -
after:在符合条件时向当前内容后方补充空格。 -
smart:根据连续输入状态自动判断是否需要补充空格。
其中,smart 模式主要按照以下规则工作:
-
连续输入判断:从连续输入的第二个英文单词开始,在符合条件时自动补充词间空格,第一个单词不会因此产生额外的前导空格。
-
手动操作重置状态:当用户主动按下空格或回车后,当前自动加空状态会被重置,避免下一段输入继续继承上一段的空格状态。
-
超时重置:连续输入状态带有 5 秒有效期。如果输入一个单词后长时间没有继续操作,超过有效期后会清除当前加空状态。
这样在暂停输入、移动光标后重新开始输入时,可以减少旧状态对新位置产生影响。在持续输入过程中,只要状态仍然有效,则会继续按照当前规则处理。
- 路径与网址处理:检测到
\或/后,会暂时延后自动加空逻辑,预留后续若干个单词的输入空间。
这一处理主要用于文件路径、网址等包含 /、\ 的内容,避免分段输入时被自动插入空格。
2. 大小写推导
英文输入可以根据编码开头的大小写状态生成对应形式的候选,减少重复切换 CapsLock 的操作。
-
全小写:输入
hello,候选保持hello等小写形式。 -
首字母大写:输入
Hello,候选按照首字母大写形式生成,例如Hello。 -
全大写:连续输入前两个大写字母后,例如
HEllo,后续候选按照全大写形式生成,例如HELLO。
首字母大写推导
双字母大写触发全大写
3. ~ 状态:空码补全与中间候选
在英文连续输入或部分候选过滤场景中,编码尚未形成完整稳定候选时,输入区可能出现 ~ 标记。
例如连续输入:
this is eng
当最后一个单词仍处于未完整匹配状态时,可能显示为:
eng~
-
英文输入中的作用:
~表示当前结果属于未完整匹配或派生得到的中间状态。此时仍然可以继续输入使编码形成完整候选,也可以按空格继续处理,或者按回车直接上屏已经输入的原始内容,例如eng、scx。 -
Pro 版字符集过滤中的作用:开启字符集过滤后,部分编码对应的候选可能因为不符合当前字符集条件而被过滤。
例如输入“你来”的过程中,在某个中间编码状态下,如果后续单字候选被过滤,可能暂时显示为 你~。
这里的 ~ 表示当前候选属于兜底或中间状态,使已经确定的前半部分仍然能够保留。继续完成后续编码后,如果能够重新形成完整有效的词组或句子,则会恢复正常候选。
因此,~ 并不是需要输入的实际字符,而是用于标识当前候选尚未处于最终稳定状态。
二、混合输入 (Mixed Code)
除纯英文输入外,万象还提供独立的混合编码方案 wanxiang_mixedcode.schema.yaml,用于处理汉字、英文字母、数字及部分符号组合形成的固定内容。
主要特点
-
无需额外引导键:符合混合编码规则的内容可以直接输入,不需要先通过特殊前缀进入单独模式。
-
与中文组句分离:混合词条通过独立方案管理,不直接参与普通中文词库的组句过程,可以减少混合数据对正常中文候选的影响。
-
支持多种字符组合:可以处理类似
1000wclips、AD钙奶、PN结、Type-C等由字母、数字、汉字或连接符共同组成的内容。 -
支持双拼适配:混合编码方案也可以通过对应的 Custom 配置调整,使其与当前使用的双拼方案保持一致。
字母、数字、汉字与符号的混合输入