sublime text多光标操作需关闭drag_text:设"drag_text": false后ctrl/cmd+click可正常添加光标;ctrl+l仅连续选行,跳行须手动点击;ctrl+shift+l按\n切片生成光标;正则find all才触发多光标,replace无效。

Ctrl+Click 添加光标前必须关掉 drag_text
按住 Ctrl 点十次只留下最后一个光标?不是快捷键失效,而是 drag_text 默认开启,把 Ctrl+Click 当成拖动文本用了。Windows/Linux 下它会直接拖走整行,macOS 上 Cmd+Click 也一样。
解决办法很简单:打开 Preferences → Settings,在右侧用户设置里加一行:
"drag_text": false
保存后建议重启 Sublime Text——部分版本不重启不生效。验证方式:按住 Ctrl 后轻点某行开头空格,应立刻出现新光标,而不是整行被选中或移动。
这个设置影响所有后续多光标操作,一旦漏掉,后面怎么点都不同步。
不连续行复制/编辑不能靠 Ctrl+L,得用原生 Ctrl+Click
Ctrl+L 只能连续选行,对第2、第7、第15行这种跳着的毫无办法。想同时处理它们,唯一可靠的方式是手动加光标再统一操作。
- 按住 Ctrl(Windows/Linux)或 Cmd(macOS),逐个点击目标行首(推荐点在第一个非空字符或行首空白处)
- 每点一次就新增一个光标;点完所有目标行后,按
Ctrl+C就能把每行完整内容(含换行符)按点击顺序复制进剪贴板 - 如果之前有残留选区(哪怕只是两个字符高亮),
Ctrl+C只会复制那部分——务必先按Esc清空再操作
别信“一键复制所有光标内容”的插件,实测多数只取第一个光标位置,或拼接时丢换行符。
Ctrl+Shift+L 不是“多行编辑开关”,它是按换行符切片的
你选了 5 行却只生成 4 个光标?大概率是鼠标松手早了,最后一行末尾的换行符没被选中。Ctrl+Shift+L 的逻辑很机械:把当前选区按 \n 切开,每个 \n 前放一个光标。
安全做法:
- 先用
Ctrl+L连按选中目标行(每按一次加一行,不会漏换行符) - 再按
Ctrl+Shift+L,确保光标落在每行开头而非缩进空格上 - 如果光标卡在缩进里,选完立刻按
Home把所有光标拉到行首
它不识别语义,也不对齐列,只认你选区里有没有 \n 和它们的位置。
正则 Find All 后光标没出现?检查匹配是否落在可编辑区域
用 Ctrl+H 写好正则,勾选 .* 和 Aa,点 Find All 后没光标?常见原因不是正则写错,而是匹配位置不可编辑:
- 匹配落在注释块内(如
//或/* */中间)、字符串引号里、或 Python 缩进空格上 - 文件混用换行符(
\r\n和\n并存),导致^/$失效;先用Ctrl+Shift+P → Set Line Endings → Unix统一 - 误点了
Replace或Replace All,它只会替换,不会生成光标
真正起作用的是 Find All —— 它让每个匹配开头带一个光标,之后打字、删、退格才同步生效。
最常被忽略的一点:多光标不是“模式”,是状态。按错一个 Esc、方向键或 Ctrl+X,所有光标就清零。别指望它记住上次在哪,每次操作都要从干净状态重新叠加。











