全拼组合区建议:遇到无法匹配拼音的字符时,不强制提交已有候选,原样保留在组合区
-
问题或需求
目前全拼(含双拼)打字时,一旦编码里出现无法继续构成合法拼音的字符(比如符号 -、_,或任意不构成音节的字母组合),引擎会立即把当前候选中排第一的汉字强制提交上屏,然后该字符落在一个全新的空缓冲区上。
例如打 sun(此时候选正常弹出:孙/损/隼…),紧接着按一下 -:
实际效果:孙 被直接提交上屏,- 单独作为标点输出,结果是 孙-
而我预期的效果应该是:sun- 整串原样留在组合区里(未提交状态),因为它已经不是任何合法的拼音/词库编码了这个行为跟"顶码上屏/满码上屏"(码表方案的满码自动确认功能)不是一回事——拼音方案本身并没有这两个概念;也跟"混输方案"无关——混输解决的是码表+拼音融合候选的问题,不涉及非法字符的处理。这一步是拼音引擎在候选层面的硬编码行为,目前没有任何配置项可以调整。
期望的解决方案
希望能增加一个类似"非法字符时不强制提交候选"的开关(可以放在「拼音方案配置」或「输入设置」里),开启后:
打字过程中如果追加的字符使当前编码不再匹配任何拼音音节/词库候选,不要自动提交当前已高亮/排序第一的候选
该字符和之前打的内容一起,作为"原始字面文本"继续停留在组合区(未上屏),候选窗此时可以退化成显示"这一整串原文本身"作为唯一/首选候选
后续继续输入(不管是字母、数字还是符号)都可以继续追加进这个"原文缓冲区",不会被重新按拼音规则打断解析
直到用户主动按空格/回车/选词键,才把这一整串原样上屏参考行为(其他主流输入法的实际表现,附截图)
截图 A / B:搜狗拼音输入法中,打一长串包含符号(-)的内容,全程停留在组合区不被打断、不强制上屏,直到手动确认

截图 C:清风里同样的操作(sun 后接 -),当前会立刻把 孙 提交出去,变成 孙-

主要使用场景:
经常需要在中文输入状态下直接打英文单词、代码片段、命令、路径等混合内容,不想每次都手动切换到英文模式或按 Shift 触发临时英文,希望能像搜狗那样"打错了/打的是英文也没关系,反正东西都还在组合区里,最后一并确认"。 -
我试了,不仅 -
只要没被设置功能(临时切换英文的字符 翻页等快捷键)。 都会遇到这个自动上屏。测试字符(半角 全角都是):`~-_=+[]/*,.