Esc键只能清空所有辅助光标,不支持部分取消;多光标是临时叠加态,非独立集合;误选时用Ctrl+U按添加顺序倒退,或Esc后Ctrl+Click手动重加(需先设"drag_text": false)。

Esc 键不能取消“某几行”,只能清空所有辅助光标
Sublime 的多光标没有“部分取消”机制——Esc 会立刻清掉除主光标外的所有辅助光标,不支持保留第2、第4、第7行而只删掉第3、第5行。这不是功能缺失,而是设计使然:多光标是临时叠加态,不是可独立管理的光标集合。
如果你刚用 Ctrl+D 选了 8 处,其中第 3 和第 6 是误匹配,想只撤掉它们:
-
Ctrl+U每按一次,倒退一次添加动作(不是按位置,是按时间顺序);连按两次,大概率回到第 6 个光标状态,但无法跳过中间某次 - 若中间混用了
Ctrl+Shift+L或Alt+鼠标拖动,Ctrl+U仍按添加先后倒退,节奏越密越难精准控制 - 真要精确剔除,不如先
Esc全清,再用鼠标Ctrl+Click手动加回需要的那几行(前提是"drag_text": false已设)
为什么 Ctrl+Click 加不上光标?先关 drag_text
最常见原因不是快捷键记错,而是默认开启的 "drag_text": true 拦截了 Ctrl+Click,让它变成拖动文本而非添加光标。
必须在用户设置里显式关闭:
"drag_text": false
改完立即生效,无需重启。macOS 用户还需注意:中文输入法(如搜狗、微软拼音)常劫持 Cmd+Click,临时切英文输入法再试。
鼠标点击加光标时,优先点在这些位置更稳:
- 行首空白处(非缩进空格区)
- 单词中间偏左位置(避免双击触发整词选择)
- 行尾换行符前(不是行末空白,而是视觉上紧贴下一行开头的位置)
Ctrl+Shift+L 后光标位置不对,怎么微调?
Ctrl+Shift+L 把当前选区按换行拆成光标,但光标默认落在每行开头。如果目标是行末补内容,得手动定位:
- 按
End键,所有光标会同步跳到各自行尾(Windows/Linux);macOS 用Cmd+→ - 若某行是空行,
End无效,光标卡在行首——需先按→或输一个空格再End - 不想每行都输相同内容?别硬扛多光标。用
Ctrl+Shift+P→Split Selection into Lines,再逐行编辑,或直接上正则查找替换
方向键一按就只剩一个光标,不是 bug 是预期行为
只要按过 ←、↑、Backspace、甚至滚动鼠标滚轮,Sublime 就会强制合并所有光标到主光标所在行列——表面看光标还在闪,实际已坍缩。粘贴错位、输内容只出一行,基本都是这个原因。
此时别猜“是不是还剩两个”,默认当作全失效处理:
- 立刻按
Esc,它比鼠标点击可靠得多(点偏可能展开折叠、选中行号、甚至触发拖拽) -
Esc不依赖焦点,不进撤销栈,不改变已有内容,只留最后一个操作的主光标 - 切换 Tab、Alt+Tab 切出再切回、甚至粘贴完立刻按方向键,都会触发坍缩——没例外
多光标真正的复杂点不在“怎么加”,而在“加完之后,你根本不知道它还剩几个”。每次移动或输入后,都该默认重置并重新确认。











