Ctrl+Z 在 Sublime Text 中仅撤销编辑动作,光标移动或切换标签会中断撤销链;撤销记录内存存储、不保存光标状态;重做推荐用 Ctrl+Shift+Z,Ctrl+Y 易被劫持;无批量重做,可查 Local History 或 .tmp 备份。

Sublime Text 的撤销和重做快捷键默认已启用,无需手动设置;但系统/配置冲突、平台差异或插件干扰可能导致 Ctrl+Z / Cmd+Z 失效或行为异常——问题通常出在“用法误解”或“环境覆盖”,而非快捷键未定义。
为什么 Ctrl+Z 突然不撤销了
它根本没坏,只是被 Sublime 主动截断了撤销栈:
-
Ctrl+Z只响应编辑动作(插入、删除、粘贴、替换),光标移动、Ctrl+F查找、切换标签页、按Tab都会中断当前撤销链 - 刚删完一段代码,狂按
Ctrl+Z却只退两步 → 很可能中间切过文件或碰了方向键 - 关掉未保存的文件再重开,
Ctrl+Z完全无反应 → 撤销记录纯内存存储,进程退出即清空 - 多光标下输错内容,
Ctrl+Z只删文字,光标位置不变 → 撤销栈不跟踪光标状态
Ctrl+Y 和 Ctrl+Shift+Z 重做行为不一致
这不是 Bug,是设计差异,且 Ctrl+Y 在部分 Windows 环境中会被终端或输入法劫持为“重复上一操作”:
-
Ctrl+Shift+Z是 Sublime 原生、稳定、推荐的重做快捷键;Ctrl+Y仅在干净桌面环境下才可靠 - 重做必须紧接撤销之后:撤了 5 步,中间敲了一个字母,
Ctrl+Shift+Z就失效 - 无法跳步重做:按一次
Ctrl+Shift+Z只恢复最后一步撤销,不是全部 - 没有“重做全部”快捷键;想批量恢复,只能反复按,或从
Local History插件或临时恢复目录取备份
如何自定义或修复快捷键绑定
多数情况下不需要改,但若被其他软件或插件覆盖,可手动检查并覆盖:
- 打开
Preferences → Key Bindings – User,添加如下内容(Windows/Linux):
[{"keys": ["ctrl+z"], "command": "undo"},
{"keys": ["ctrl+shift+z"], "command": "redo"},
{"keys": ["ctrl+y"], "command": "redo"}]
macOS 用户把 ctrl 换成 cmd 即可;注意:顺序很重要,后写的规则会覆盖前面同 key 的绑定
- 确认是否被插件占用:打开控制台
Ctrl+`,输入sublime.log_commands(True),然后按快捷键,看日志里实际触发的是哪个命令 -
Ctrl+U是软撤销(undo_selection),只撤回光标/选区变化,和Ctrl+Z完全无关,别混淆
真正容易被忽略的点是:撤销栈、Local History 快照、Session 缓存、文件访问历史这四者完全独立。误删代码后盯着 Ctrl+Z 狂按,不如立刻右键 → Local History → Show History(前提是曾 Ctrl+S 过),或者去 Recovery/ 目录翻带时间戳的 .tmp 文件。


















