Ctrl+Z仅撤销编辑动作,不处理光标移动等非编辑行为;撤销栈遇非编辑操作即截断;重做须紧接撤销且线性执行;Ctrl+U专用于多光标软撤销;Local History需保存才触发备份,与撤销栈无关。

Ctrl+Z 撤销到底撤什么,为什么按了没反应
Ctrl+Z 只撤销「编辑动作」:比如输入文字、删除字符、粘贴、替换选区内容。它不处理光标移动、切换标签页、执行查找(Ctrl+F)、按 Tab 缩进等非编辑行为。一旦你做了这类操作,撤销栈立刻被截断——不是快捷键坏了,是 Sublime 主动丢弃了后续不可靠步骤。
常见失效场景:
- 刚删掉 10 行代码,狂按
Ctrl+Z却只退 2 步就停了 → 很可能中间切过标签页或按过Ctrl+F - 关闭未保存的文件再重开,
Ctrl+Z完全无效 → 撤销历史随文件关闭而清空 - 多光标状态下输错,
Ctrl+Z只删文字,光标还散在各处 → 它不管光标位置,只管文本变更
重做必须紧接撤销,不能“跳着来”
Ctrl+Y 和 Ctrl+Shift+Z 都能重做,但行为有差异:Ctrl+Y 在部分 Windows 系统或终端模拟器中可能被占用;Ctrl+Shift+Z 更稳定,推荐优先用它。
关键限制:
- 重做只对「上一次撤销」有效;中间只要有一次普通输入(哪怕只敲了一个字母),重做链就断了
- 不能跳过某步重做,也不能选中某一步单独恢复——它是线性栈,不是版本树
-
Ctrl+Z撤了 5 步,按一次Ctrl+Shift+Z只恢复第 5 步,不是全部 - 没有“重做全部”快捷键;想批量恢复?只能反复按,或从
Local History插件里找快照
Ctrl+U 是多光标编辑的“安全带”
多光标出错时,Ctrl+Z 通常只撤回最后一次输入,光标却还留在原地;Esc 又容易漏掉某些光标导致后续粘贴错位。只有 Ctrl+U 能把所有光标一次性“软撤销”回上一个稳定状态——它不取消已输入的文字,只还原光标分布。
典型使用时机:
- 误按多次
Ctrl+D或Ctrl+Alt+G,选区失控 - 列选(
Alt+Shift+↓)后发现行尾空格不一致,光标没对齐 - 用
Ctrl+Shift+L拆分选区后,光标落在不该在的位置
注意:Ctrl+U 连续按可逐步退回更早的光标布局,但它无法跨编辑会话保留;如果中间执行过剪切/粘贴等破坏性操作,它可能失效。
Local History 不是 Ctrl+Z 的延伸,而是独立备份通道
Local History 插件的历史和内存里的撤销栈完全无关。它的快照只在你按 Ctrl+S(或 Cmd+S)保存时生成,依赖三个条件同时满足:文件路径固定、已保存、有写入权限。
常见误判:
- 文件仍是
untitled,右键Show History列表为空 → 不是插件没装好,是根本没触发备份 - 改完代码狂按
Ctrl+Z撤不回来,又没再Ctrl+S→ 插件不会为此生成任何快照 - 删掉文件又新建同名文件,但路径大小写或斜杠方向稍有不同 → 历史列表照样为空
真正能找回“已删但曾保存”的代码,只有两个可靠入口:一是 Ctrl+Z(限未关闭前),二是 Local History → Show History(需曾成功保存)。两者互不替代,也互不共享数据。

















