Skip to content

BackspaceKey 退格键 ​

删除前一个字符;长按连续删除;本版为长按与上滑增加了一组复合手势与正文保护。

字段 ​

字段类型必填说明
typestring✓固定为 "BackspaceKey"
swipeobject上下滑动触发的 MacroAction
swipeLabelstring上下滑动提示文字
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 的普通滑动(不必先长按)与上面的长按连删后上滑是两个独立机制:前者需要手指没有长按停留、直接滑动;后者必须先按满长按延迟进入连删。

相关页面 ​