ctrl+u是唯一能撤销光标操作的快捷键,它按时间顺序倒退光标添加动作,不撤销编辑内容;ctrl+z只撤销编辑动作且与光标历史完全隔离;esc则硬重置为单光标。

Ctrl+U 是唯一能撤销上一次光标操作的快捷键,它不碰你输入的字符、不撤已执行的替换,只倒退“光标怎么加进来的”这一步。
为什么 Ctrl+Z 不行
Ctrl+Z 只撤销编辑动作:删行、粘贴、输入文字、Ctrl+H 替换内容……它完全不感知光标状态。你按了 5 次 Ctrl+D 选中变量,第 3 处误选,Ctrl+Z 狂按只会把刚写的注释也撤掉——这不是它失灵,是它压根不管光标。
-
Ctrl+Z的撤销栈和光标历史完全隔离,两者互不影响 - 切换标签页、按
Tab、执行Ctrl+F都会让Ctrl+Z栈被截断 - 关掉未保存的文件,所有
Ctrl+Z记录直接清空
Ctrl+U 怎么用才准
它严格按时间顺序倒退光标添加动作,和位置无关。比如你:
- 先
Ctrl+Click点了第 2 行和第 8 行 → 2 个光标 - 再
Ctrl+D选中第 1、3、5 行的user_id→ 新增 3 个,共 5 个 - 最后
Alt+鼠标拖动列选第 4–6 行 → 新增 3 个,共 8 个
此时按一次 Ctrl+U,撤掉的是最后加的列选(第 4–6 行);再按一次,撤掉的是中间加的 Ctrl+D;第三次才回到最初那两个手动点的光标。
- 节奏太密(比如连按 5 次
Ctrl+D)容易退错步,建议每次添加后稍作停顿 - 混用
Alt+拖动和Ctrl+D没问题,Ctrl+U仍按添加时间倒推 - 如果按了没反应,检查用户设置里是否还有
"drag_text": true—— 必须设为false
什么时候该用 Esc 而不是 Ctrl+U
Esc 是硬重置,不是倒退:它瞬间清空所有辅助光标,只留下主光标(即你最后操作的那个),不进任何历史栈,也不依赖焦点。
- 方向键一按只剩一个光标、粘贴错位、
Ctrl+D突然失灵 → 这些都不是坏了,是多光标已坍缩,Esc是最稳落地操作 - 刚切回 Sublime 窗口、刚粘贴完文本、甚至鼠标点偏触发了折叠展开,
Esc都立刻生效 - 别指望鼠标单击替代:点偏可能选中行号、展开代码块,甚至拖动文本
真正容易被忽略的是:Ctrl+U 依赖完整的光标添加链路,而 "drag_text": true 会悄悄拦截 Ctrl+Click 和 Alt+拖动 的底层事件——这个配置关不掉,Ctrl+U 就可能失效,且毫无提示。











