sublime多光标易失效,核心在于选区不洁、大小写敏感未调、换行符未选中、drag_text干扰及操作误触;需精准双击变量、关闭drag_text、用ctrl+l选行再ctrl+shift+l、慎用replace避免误替换。

Sublime 的多光标不是“模式”,按 Esc、方向键、Ctrl+X 甚至一次误点就会清空所有光标——真正卡住人的,是光标加错了位置、留不住、或者输着输着发现改了注释里的字符串。
Ctrl+D 总跳过目标变量?先看选区干不干净
它默认只匹配「完整单词」,且严格依赖你双击选中的内容。光标停在 user_id 中间删掉下划线,后续就只搜 userid;双击带了前导空格或后缀点号(比如 obj.user_id.),Ctrl+D 就按错误片段去匹配。
- 务必双击变量名,确认高亮区域完全包裹
user_id,不含前后空格、引号、句点 - 仍跳过?检查是否启用了大小写敏感:
Ctrl+Alt+R切换开关 - 想跳过某处(比如字符串里的同名内容):先按
Ctrl+K,松手再按Ctrl+D - 误按太多?
Ctrl+U撤销上一次光标添加(不是撤销输入内容)
Ctrl+Shift+L 只生成一个光标?你没选中换行符
Ctrl+Shift+L 的本质是「把当前选区按 \n 切片,每片末尾加一个光标」。它不识别“你想选几行”,只认你实际选中的字符里有没有换行符。
- 鼠标拖选 5 行但没覆盖最后一行的换行符(即没选中
\n)→ Sublime 当作单行 → 只放一个光标 - 安全做法:先用
Ctrl+L连续选中目标行(每按一次选一行),再按Ctrl+Shift+L - 想统一从行首编辑:先按
Home(不是←),所有光标同步跳到各行开头(含缩进);再按一次Home跳过缩进 - 要加前缀(如
//)?别用这个命令,改用列选择:Shift+Alt垂直拖动(Win/Linux)或Shift+Cmd(Mac)
鼠标点击加不了光标?drag_text 在捣鬼
默认开启的 drag_text 会让 Ctrl+Click(Win/Linux)或 Cmd+Click(Mac)优先触发文本拖动,而不是加光标。
- 必须关掉:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点击位置很关键:避免点在已有选区边缘、单词中间或空行缩进处
- 优先点行首、行尾或纯空格位置,稳定性高很多
- 远程桌面或中文输入法下
Alt+Shift+拖动常被系统劫持,可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启
正则 Find All 后没出现光标?你可能点了 Replace
Find All 不是自动加光标,而是把所有匹配项选中并置入多光标状态——前提是搜索范围正确、正则无语法错误、且你没误点 Replace 或 Replace All。
- 先用
Ctrl+H打开替换面板,写好正则(比如\buser_id\b),勾选.*(正则模式)和Aa(大小写敏感按需) - 点
Find All,不是Replace—— 点错就直接替换了,光标不会出现 - 混合换行符(
\r\nvs\n)可能导致^/$失效,先用Ctrl+Shift+P→Set Line Endings统一为 Unix - 列选择状态下无法用
Ctrl+D,必须先按Esc退出列选,才能切回多光标模式
最常被忽略的其实是光标落点:它不判断上下文,只机械执行输入。光标落在字符串中间、注释里、或 Python 的缩进空格上,一按退格就删掉关键结构——操作前扫一眼光标位置,比事后修复快十倍。











