ctrl+z仅撤销编辑动作(如删行、替换文本、粘贴内容),不处理光标状态、查找、切换标签页等操作;一旦执行非编辑操作,撤销栈即被截断,未保存时关闭文件则记录全丢。

Ctrl+Z 撤销的到底是什么,为什么按了没反应
Ctrl+Z 只撤销编辑动作,不撤销光标移动、查找、切换标签页等操作。一旦你切到别的标签页、执行 Ctrl+F、甚至只是按了下 Tab,撤销栈就可能被截断——不是“坏了”,是 Sublime 主动清掉了后续不可靠的步骤。
常见失效现象:
- 刚删了一整段代码,狂按
Ctrl+Z却只退两步就停了 - 关掉文件再重开,
Ctrl+Z完全没响应(未保存的撤销记录全部丢失) - 多光标状态下输错内容,
Ctrl+Z只撤掉文字,但光标还在原地(它不管光标)
撤销栈默认最多存 100 步,但无法查看列表,也没有时间轴。想确认当前还能撤几步?只能靠试——连续按,直到没变化为止。
重做必须严格接在撤销之后,否则链就断了
Ctrl+Y 和 Ctrl+Shift+Z 都是重做,但行为有差异:Ctrl+Y 在部分系统或配置中可能被映射为其他功能(比如 Windows 终端里常被占),Ctrl+Shift+Z 更稳定,推荐优先用后者。
关键限制:
- 重做只对紧挨着的
Ctrl+Z操作有效;中间插了一次普通输入(哪怕只敲了一个字母),重做链立即中断 - 不能跳过某步重做,也不能选中某一步单独重做——它是线性栈,不是版本树
- 如果
Ctrl+Z撤了 5 步,你只按一次Ctrl+Shift+Z,只恢复第 5 步,不是全部
没有“重做全部”快捷键。想批量恢复?只能反复按,或直接从历史备份里拿。
Local History 插件的历史和 Ctrl+Z 完全无关
很多人以为右键 Local History → Show History 是撤销功能的延伸,其实不是:Local History 的快照只在你按 Ctrl+S 时生成,依赖文件路径、保存状态、权限三者同时满足。它和内存里的撤销栈没有任何数据互通。
常见误判场景:
- 文件仍是
untitled,点了Show History列表为空——不是插件没装好,是根本没触发备份 - 改完代码后狂按
Ctrl+Z撤回,但没再Ctrl+S,插件不会为此生成任何快照 - 删掉文件又新建同名文件,路径稍有不同(比如大小写、斜杠方向),历史列表照样为空
验证是否生效:改一行 → Ctrl+S → 再改一行 → Ctrl+S → 右键 Show History,这时应看到至少两条带时间戳的记录。
真正能找回“已删但曾保存”的代码,只有两个可靠入口
误删代码后,别只盯着 Ctrl+Z。如果文件曾保存过,有两个独立通道可恢复:
-
Local History 插件:右键 →
Local History → Show History,点击历史条目以只读方式打开比对;确认后点Restore覆盖当前文件(注意:无二次确认) -
Recovery 缓存:关掉 Sublime,去
~/Library/Application Support/Sublime Text/Local/Recovery/(macOS)或%APPDATA%\Sublime Text\Local\Recovery\(Windows)翻recovery-开头的文件,这些是异常退出时生成的原始缓存,不依赖保存动作
最容易被忽略的一点:这两个机制互不感知。你在 Show History 里看到的版本,和 Recovery/ 里的文件,可能来自完全不同的时间点和触发条件。别假设它们同步——该查哪个,得看当时有没有保存、有没有异常退出、文件还在不在。











