Ctrl+U仅撤销光标添加动作,按添加时间倒序回退,不撤销编辑内容;Esc一键清空所有辅助光标,保留主光标;Ctrl+Z只撤销编辑操作,与光标无关。

Ctrl+U 是专用于撤销光标添加动作的命令
它不撤销你输入的文字、替换的内容或删除的行,只回退「上一次怎么加的光标」。比如你刚按了 Ctrl+D 选中第 5 个变量,Ctrl+U 就会撤掉那个光标,剩下前 4 个;再按一次,回到 3 个——严格按添加时间倒序,和位置无关。
常见误操作是拿 Ctrl+Z 狂按想剔除某个误选,结果把刚写的函数也撤回了。这不是快捷键失灵,是用错了栈:编辑栈和光标栈完全隔离。
-
Ctrl+U连续按可逐步退回更早的光标布局,但无法跨编辑会话保留 - 如果中间混用了
Ctrl+Shift+L拆行和Alt+鼠标拖拽列选,Ctrl+U仍按添加顺序撤,不是按视觉区域撤 - 按了没反应?先检查用户设置里是否还开着
"drag_text": true—— 关掉它,否则光标添加链路被拦截,Ctrl+U就无从撤销
Esc 键才是多光标失控时的第一反应
当你发现方向键一按只剩一个光标、粘贴后光标错位、或者 Ctrl+D 突然不响应,别试 Ctrl+U 或 Ctrl+Z,直接按 Esc。
Esc 不走任何历史栈,不依赖焦点,不触发撤销,只做一件事:清空所有辅助光标,保留主光标(即最后操作的那个)。它在切窗口回来、刚粘贴完、甚至 Sublime 刚启动时都立刻生效。
- 鼠标单击不可靠:点偏可能展开折叠、选中行号,甚至拖动文本
- 方向键、
Tab、Backspace都会强制归并光标,导致“突然只剩一个”,Esc是唯一能打断这种脆弱状态的操作 -
Esc后你可以重新用Ctrl+D或Ctrl+Click稳定布设光标,节奏比狂按Ctrl+U更可控
为什么 Ctrl+Z 对多光标选区完全无效
Ctrl+Z 只撤销编辑动作:输入、删除、粘贴、替换选区内容。它不记录光标怎么来的,也不保存光标添加历史。一旦你做了非编辑行为(比如切换标签页、按 Ctrl+F 查找、甚至只是按了下 Tab),撤销栈就被截断。
- 关掉未保存的文件再重开,
Ctrl+Z历史直接清空 - 多光标状态下输错字,
Ctrl+Z只删文字,光标还散在各处,根本没解决选区问题 - 想恢复误删的大段代码?得去本地恢复目录翻
.tmp文件:~/Library/Application Support/Sublime Text 3/Local/Recovery/(macOS)或C:\Users\用户名\AppData\Roaming\Sublime Text 3\Local\Recovery\(Windows)
Local History 和撤销栈毫无关系
很多人以为 Local History 是 Ctrl+Z 的延伸,其实它是独立备份通道:快照只在你按 Ctrl+S 保存时生成,且必须同时满足三个条件——文件路径固定、已保存、有写入权限。
它和内存里的光标栈、编辑栈完全无关。你狂按 Ctrl+U 或 Esc,不会影响 Local History 的快照生成;反过来,Local History 也救不回你刚加错又没保存的那 8 个光标。
真正容易被忽略的是:光标操作没有持久化机制。所有多光标状态都在内存里,关掉文件、崩溃、甚至切到终端再切回来,都可能让光标链路中断——所以关键操作后及时 Ctrl+S,既是保内容,也是为 Local History 留下可追溯的锚点。

















