Sublime Text的多光标与批量替换功能依赖纯文本匹配而非语义分析,需通过Whole Word、正则(?s)、列编辑设置等精准控制,误操作主因是跳过高亮预览和忽略空行/换行符处理。

Ctrl+D 选相同词时总多选或漏选
它不是“智能识别变量”,只是字符串逐字匹配。双击一个 user_id 后按 Ctrl+D,下一处 user_id_list 也会被框中——因为前缀完全一致。
- 误匹配时,立刻按
Ctrl+K再按Ctrl+D跳过当前项 - 想只选完整单词(不碰
user_id_list),先勾选替换面板里的Whole Word,再用Ctrl+H+In Selection -
Alt+F3是暴力全选,适合确认过全文无歧义的场景(比如改日志里固定的INFO→DEBUG)
Ctrl+Shift+L 拆行光标总只出一个
这个快捷键根本不看“你打算选几行”,只认选区里有没有换行符 \n。鼠标拖选时末尾没盖住换行符(视觉上像选中了,其实停在行尾字符上),它就当单行处理。
- 安全做法:先用
Ctrl+L选中第一行,再按住Shift+↓多选几行,确保选区含\n - 光标默认落在每行末尾换行符前,输内容会追加;想统一加前缀,得先按
Home或运行命令面板里的Align Indent - 空行也会被拆出光标,但光标停在开头,容易漏改——处理配置文件时尤其要手动检查空行
全局替换 Ctrl+Shift+F 容易批量污染代码
它不像 IDE 那样有语义分析,纯靠文本匹配。搜 console.log 全删,结果把 JSON 字符串里的 "console.log" 也干掉了。
-
Where框填.才是整个项目;填空 = 只搜已打开标签页;./src/**/*.js斜杠必须用/(Windows 也不例外) - 正则跨行匹配必须加
(?s)前缀,否则.不吃换行符 - 替换前务必点
Find看高亮数量是否符合预期——这步跳过,90% 的误操作就发生在这里 - 大项目记得关掉
index_files设置,否则搜索卡死或漏文件
列编辑 Alt+鼠标拖拽为什么选不直
列选择依赖等宽字体和关闭 drag_text。如果字体不是 Consolas 或 Source Code Pro,或者设置里 drag_text: true,鼠标一碰就触发拖动而不是列选。
- 先在
Preferences → Settings里确认"drag_text": false - 用
Alt+ 左键拖拽时,必须保持鼠标垂直移动;斜着拉会生成锯齿状选区 - 想在每行第 10 列插入内容,别靠目测——先用
Ctrl+Shift+P调出命令面板,搜Move to Column输入数字精确定位

















