必须点击Find All而非Replace All才能生成多光标:Ctrl+H打开替换面板,勾选正则模式后点Find All,所有匹配起始位置自动获得独立光标,支持同步输入或删除。

Ctrl+H 找到所有匹配项后,怎么让每个位置都生成光标
直接点 Replace All 不会生成光标,必须用 Find All。打开替换面板(Ctrl+H),写好正则或普通文本,勾选 Regular Expression 和/或 Match Case(按需),然后点右下角的 Find All 按钮——不是 Replace,也不是 Replace All。
这时所有匹配起始位置都会被选中,且每个匹配开头自动带一个光标。后续输入、删除、退格都会同步作用于所有光标位置。
- 如果点了
Find All却没看到光标,大概率是误点了Replace或文件里有混合换行符(\r\n和\n并存),先执行Ctrl+Shift+P→Set Line Endings: Unix统一格式 -
^和$在正则中默认锚定整行,但若某行被软换行(Word Wrap)折断,$可能匹配不到物理行尾;编辑前务必关闭View → Word Wrap - 匹配内容含空格或标点时,
Find All仍会严格按字面匹配;想模糊匹配(比如匹配user_id也命中username),得关掉match_whole_word设置或改用.*user.*类正则
为什么 Ctrl+D 有时跳过目标、有时只加一个光标
Ctrl+D 是增量匹配,不是全文扫描:它从当前光标位置开始,往后找「下一个完全相同」的词(包括大小写、空格、标点),不跨注释/字符串边界,也不自动跳过已选区域。
- 双击选中
api_key再按Ctrl+D,它会严格匹配整个选区文本,比单纯把光标放词里更可控 - 想跳过当前高亮项(比如第3个
api_key是误匹配),按Ctrl+K然后立刻按Ctrl+D - 想反向查找(往前找上一个),用
Ctrl+K,Ctrl+Shift+D - 如果某处没被选中,检查是否开启了
match_whole_word(默认开启);关掉它,username里也能命中name
多光标状态下,方向键和 Home/End 的行为差异
方向键(←→↑↓)在多光标模式下是“清空指令”:按一次,除主光标(最后添加的那个)外,其余全部消失。这不是 bug,是 Sublime 的硬性设计。
真正安全的定位方式只有这几个:
- 按
Home:所有光标跳到各自行首 - 按
End:所有光标跳到各自行尾 - 按
Ctrl+Shift+L后再按Home:先把光标拆到每行末尾,再统一拉回行首,适合批量加前缀 -
Ctrl+Shift+↑/↓是唯一接近“列移动”的操作,但它本质是“在当前列向上/向下逐行加新光标”,不是平移现有光标;某行该列为空格或已到行尾时,光标会落到行末,造成错位
drag_text 为 true 时,Ctrl+Click 为什么变成拖动文本
Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)本该是手动加光标最灵活的方式,但默认设置 "drag_text": true 会让点击行为被解释为“拖动选中文本”,而非“添加光标”。
必须在用户设置(Preferences → Settings – User)中显式写入:
"drag_text": false
否则哪怕轻点,只要鼠标稍有偏移,就会触发拖动,光标加不上。
- MacBook 触摸板三指拖拽可能干扰,建议外接鼠标或临时禁用系统手势
- 点的时候要干脆,别拖;如果点了没反应,先按
Esc清掉当前状态再试 - 这个设置不重启即生效,但改完后已打开的文件需重新触发一次多光标(比如先
Ctrl+D再Ctrl+Click)才能验证
多光标编辑真正的复杂点不在快捷键本身,而在于「光标生命周期管理」:它没有模式,只有叠加与销毁;按错一个键(Esc、方向键、Ctrl+X)、点错一个位置、甚至软换行开着,都可能导致光标意外丢失或错位。实际编辑前,养成先关 Word Wrap、确认 drag_text 为 false、用 Home/End 定位的习惯,比死记快捷键更关键。











