BackspaceKey 退格键
删除前一个字符;长按连续删除;本版为长按与上滑增加了一组复合手势与正文保护。
字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | ✓ | 固定为 "BackspaceKey" |
swipe | object | 上下滑动触发的 MacroAction | |
swipeLabel | string | 上下滑动提示文字 | |
weight / rowHeightPercent / 颜色字段 | — | 与共通字段相同 |
内置行为
- 点击:删除一个字符(等价于发
BackSpace) - 长按:连续删除(节奏与「长按延迟」设置一致)
- 左右滑动:先移动删除范围,松手后删除选中的范围
- 上下滑动:仅当配置了
swipe时触发对应宏;左右滑动删除流程不会被覆盖
长按删空编码后的正文保护(本版)
长按连删把拼音编码区删空之后,继续按住不会再删除已上屏的正文,直到手指抬起——防止连删越过编码区边界误删正文(与万象拼音的桌面退格保护一致):
- 手指抬起后再按退格,恢复正常删除正文;单次退格、以及编码区本来就空时的退格,都不受影响;
- 进入保护后被拦下的重复退格不再产生按键反馈(震动),作为"已经删到底"的手感提示;
- 这是应用层的保护,不需要方案开启任何开关。
长按连删后上滑:两段式清空(本版)
长按进入连删后,退格键上方浮现提示条;手指不抬起直接向上滑进提示条区域:
| 状态 | 提示条 | 松手效果 |
|---|---|---|
| 合成中(正在打编码) | Esc | 一次性清空当前编码(发 Esc),不动已上屏正文 |
| 非合成(编码区已空) | 上滑清空🆑 | 清空当前输入框全部文字(含已上屏正文,走系统 InputConnection,与方案无关) |
- 判定按手指相对退格键的坐标计算(横向为键宽两倍、纵向为键上方一个提示条高度以内),提示条本身不接收触摸;
- 触发清空后抬手不会补删;清空同时会复位上面的正文保护序列,清空后立刻再按退格可正常删正文;
- 触发时有一次长按级别的振动反馈。
示例
json
{ "type": "BackspaceKey", "weight": 0.15 }配置上滑 / 下滑为"按词删除":
json
{
"type": "BackspaceKey",
"weight": 0.15,
"swipe": {
"macro": [
{ "type": "shortcut", "modifiers": [ { "fcitx": "Ctrl_L" } ], "key": { "fcitx": "BackSpace" } }
]
},
"swipeLabel": "←词"
}注意区分
配置 swipe 的普通滑动(不必先长按)与上面的长按连删后上滑是两个独立机制:前者需要手指没有长按停留、直接滑动;后者必须先按满长按延迟进入连删。