Mac需在系统设置中将“重复前延迟”调至最短、“按键重复”设为中等偏右,并禁用Terminal的“Option键作为Meta键”及执行defaults write -g ApplePressAndHoldEnabled -bool false命令,才能使方向键、Backspace等长按连续触发。

Mac终端默认关闭按键长按重复输入功能,导致按住方向键、Backspace或字母键时无法连续触发,严重影响命令行编辑效率。必须手动启用系统级的键盘重复设置,并确认终端未被个别配置覆盖。
开启系统级按键重复功能
第一步:打开「系统设置」→「键盘」→「键盘快捷键」右侧的「键盘」标签页(不是「快捷键」)。
拖动「按键重复」滑块至中等偏右位置,同时将下方「重复前延迟」滑块调至最短——【若「重复前延迟」仍为默认中档或更长,方向键长按时会卡顿1秒以上才开始连发】。
这一步操作起来很简单,直接拖动两个滑块即可,无需重启。
验证终端是否生效
打开 Terminal.app,输入任意字符(如 a),然后按住 ← 方向键不放:若光标持续左移,说明已生效;若只跳一次就停,说明设置未被终端识别。
此时需检查是否启用了「使用Option键作为Meta键」:在 Terminal → 「设置」→「配置文件」→「键盘」中,取消勾选「将 Option 键用作 Meta 键」——【该选项与 macOS 系统级按键重复机制冲突,开启后方向键/Backspace 长按必然失效】。
方法一:通过命令行强制刷新键盘参数
在终端中执行:defaults write -g ApplePressAndHoldEnabled -bool false → 回车 → 关闭所有终端窗口 → 重新打开。
这条命令禁用 macOS 原生的「按住显示重音符号」逻辑,释放按键长按通道给普通字符和控制键。它不影响中文输入法,但能解决 iTerm2 和原生 Terminal 中 Backspace 长按删除多个字符失灵的问题。
方法二:针对 iTerm2 用户的额外设置
打开 iTerm2 → 「iTerm2」菜单 → 「设置」→ 「配置文件」→ 「键盘」→ 找到「复位键盘映射为默认值」按钮并点击。
再进入「键映射」标签页,确认「左箭头键」和「右箭头键」的动作均为「发送光标左/右转义序列」,而非「发送文本」。
最后勾选底部「在空闲时发送密钥重复事件」——这一步是 iTerm2 特有开关,原生 Terminal 没有对应选项。

















