ctrl+z仅撤销编辑动作(删行、粘贴、替换等),不撤销光标移动、tab切换、查找等操作,且撤销栈易被截断、不跨文件、未保存即丢失;推荐用ctrl+shift+z重做,ctrl+u专用于倒退光标操作,esc强制清空多光标。

Ctrl+Z 确实能撤销编辑,但不是“万能后悔药”——它不保存、不跨文件、不抗干扰,按错一次就可能断链。
Ctrl+Z 撤销什么、不撤销什么
它只撤销编辑动作:删行、粘贴、替换文本、输入字符。不撤销光标移动、Tab 切换、查找操作、切换标签页——这些都会让撤销栈被截断。
- 没保存就关文件?
Ctrl+Z历史全丢,连第一步都按不出来 - 刚切到另一个文件又切回来?中间的撤销步数可能已失效
- 撤销栈默认最多存 100 步,但无法查看、不能跳转、没有时间戳
- 想恢复误删的整段代码却按
Ctrl+Z没反应?先去~/Library/Application Support/Sublime Text 3/Local/Recovery/(macOS)或C:\Users\用户名\AppData\Roaming\Sublime Text 3\Local\Recovery\(Windows)翻.tmp文件
Ctrl+Y 和 Ctrl+Shift+Z 的实际区别
Ctrl+Y 是重做,但它只对紧接在它前面的 Ctrl+Z 有效;一旦中间穿插了任何其他编辑(比如多按了一次 Backspace),链就断了。而 Ctrl+Shift+Z 更稳定,不依赖操作连续性,在多数配置下都能触发重做。
- 推荐统一用
Ctrl+Shift+Z(Windows/Linux)或Cmd+Shift+Z(macOS),避免因设置差异导致失灵 -
Ctrl+Y在部分系统里被映射为“重复上一命令”(比如重复缩进),而非重做 - 重做只能沿原路返回,不能跳步;撤了 5 步,就得按 5 次重做才能回到起点
Ctrl+U 不是撤销,是“光标倒带”
Ctrl+U 完全不碰文本内容,只回退你加辅助光标的操作顺序:比如 Ctrl+D 选了 6 处变量名,按一次 Ctrl+U 就剩 5 个光标;Ctrl+Shift+L 把 8 行转成光标后手抖多点了一行,Ctrl+U 能撤掉那次点击。
- 它不进撤销栈,不影响
Ctrl+Z步数,也不受 Tab/切换等干扰 - 如果按了没反应,检查用户设置里是否开着
"drag_text": true——必须设为false - 混用
Alt+鼠标拖动列选和Ctrl+D也没问题,Ctrl+U仍按添加时间倒退,但狂按Ctrl+D可能导致节奏错乱、退错步
Esc 是多光标崩溃时的硬重启键
方向键一按只剩一个光标、粘贴内容错位、Ctrl+D 没反应——大概率是多光标状态已坍缩或卡住。Esc 不是取消,是强制清空所有辅助光标,只留主光标,不触发撤销、不依赖焦点、不改变内容。
- 哪怕刚切回 Sublime 窗口、刚粘贴完、甚至
Alt+Tab切出再切回,Esc都立刻生效 - 比鼠标点击可靠得多:点偏可能展开折叠块、选中整行、甚至意外拖拽文本
- 别赌“再试一次
Ctrl+D就好”,先按Esc,再重新开始
真正容易被忽略的是:撤销行为和文件保存状态强绑定,且完全不感知上下文。你以为按了三次 Ctrl+Z 就能回去,其实可能第一次就断在了某个 Tab 切换里——习惯性 Ctrl+S 不仅防丢代码,也在悄悄保全你的后悔权。











