esc是唯一能立刻清空所有辅助光标的操作;它不依赖焦点、不触发撤销、不改动编辑内容,仅保留最后操作的主光标,效果稳定无副作用。

Esc 是唯一能立刻清空所有辅助光标的操作
多光标状态下,任何方向键、Backspace、Tab 切换、甚至 Alt+Tab 切出窗口再切回来,都可能让光标悄悄合并或错位——表面还在编辑,实际只剩一个光标卡在某处。这时候按 Esc 是最稳的“安全落地”方式。
它不依赖当前焦点是否在编辑区,不触发撤销栈,也不影响你刚输的内容或删的字符,只保留主光标(即最后操作的那个),其他辅助光标全部清空。
比鼠标点击更可靠:点偏了可能展开折叠块、选中整行号栏,或者误触列选择;而 Esc 无论何时按,效果都一致、干净、无副作用。
Ctrl+U 只能撤销光标添加动作,不是撤销编辑内容
当你用 Ctrl+D 连续加了 7 个光标,结果第 5 个是注释里的同名字符串,想剔除它但不想全清重来?这时 Ctrl+U 就是关键。
Ctrl+U 每按一次,就倒退一次光标添加动作:7→6→5…直到只剩初始光标。但它不会撤回你输入的字符、替换的文本或删除的操作。
- 如果中间穿插过
Ctrl+Shift+L或列选,Ctrl+U仍按“添加时间顺序”倒退,不是按位置远近 - 别一口气猛按
Ctrl+D,节奏太密会导致Ctrl+U撤错步——比如本想撤第 3 个,结果第 2 个列选也被一起倒退了 -
Ctrl+Z和Ctrl+U的历史栈完全独立:Ctrl+Z撤编辑行为,Ctrl+U撤选区行为
为什么方向键和输入会偷偷合并光标
很多人以为按 ← 或 ↑ 后光标“还在”,其实 Sublime 已悄悄把所有光标拉向主光标所在行列——这不是移动,是强制归并。
按方向键后,所有光标尝试同步走一格;某光标到行首/行尾卡住,其余继续,结果错位;再按一次,大概率只剩一个光标停在奇怪位置。
开始输入文字时,所有位置同步插入相同内容,然后立刻转为单光标。如果你需要“这里输 a,那里输 b”,硬扛多光标只会失败。
- 真正需要不同内容的场景,改用
Ctrl+Shift+P→ 输入Split Selection into Lines - 列选择后不能用
Ctrl+D,必须先按Esc退出列选状态 - 误用
Ctrl+K,Ctrl+D(跳过当前匹配)后接Ctrl+D,容易漏掉本该选中的项,且Ctrl+U无法倒退“跳过”动作
鼠标点击失效?先检查 drag_text 设置
点了好几下没加新光标,或者一拖就拖动了文本而不是生成列选——大概率是 drag_text 没关。
默认开启时,Ctrl+鼠标左键(Windows/Linux)或 Cmd+鼠标左键(macOS)会被识别成拖动文本,而非添加光标。
必须手动关掉:打开 Preferences → Settings,在右侧用户设置里加一行:"drag_text": false。保存后部分版本需重启才生效。
点击位置也很关键:
- 避免点在已有选区边缘、单词中间或空行缩进处
- 优先点行首、行尾或纯空格位置
- 远程桌面或某些键盘布局下,
Alt+Tab等系统热键可能拦截Alt+拖动,可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启
真正卡住人的,从来不是快捷键记不牢,而是光标生成后根本没注意它落在哪——尤其是 Ctrl+Shift+L 拆行后光标错位、列选择后输内容就错列、Ctrl+D 跳过目标却没意识到选区已脏。这些细节不盯住,批量编辑就变成反复重试。











