sublime text多光标操作基于纯文本匹配,无语法感知:ctrl+d需whole word防误选;ctrl+shift+l按换行切光标,须确保选中换行符;正则替换须启用regex、转义括号、用$1;全局搜索无语义分析,易误伤字符串。

Ctrl+D 逐个选中相同词时总选错或漏掉
它只做字面匹配,不识别语法或上下文。双击 user_id 后按 Ctrl+D,下一处 user_id_list 也会被选中——因为前缀完全一致。
想只改完整单词,必须先勾选查找面板里的 Whole Word;想跳过某处(比如字符串里的同名内容),按 Ctrl+K 再按 Ctrl+D;大小写敏感需手动按 Ctrl+Alt+R 开启,否则 USER_ID 和 user_id 会被一起框住。
- 误匹配常因光标没停在词边界:双击后检查是否多带空格或点号,否则后续匹配会截断
- 按太多次
Ctrl+D?用Ctrl+U撤销上一次光标添加(不是撤销输入) - 注释或字符串里频繁干扰?先用
Ctrl+Shift+P→Set Syntax: Plain Text临时切走语法高亮,减少误触
Ctrl+Shift+L 拆行光标只出一个,或者歪斜不对齐
Ctrl+Shift+L 不是“开启多行编辑”,它只把当前选区按换行符 \n 切片,每片末尾加一个光标。鼠标拖选 5 行但没覆盖最后一行的换行符(视觉上像选中了,其实停在行尾字符上),Sublime 就当单行处理。
安全做法:先用 Ctrl+L 连续选中目标行(每按一次加一行),再统一按 Ctrl+Shift+L;空行也会被拆出光标,但光标落在行首,若你预期都在行尾,得手动按 End 或先运行命令面板里的 Align Indent。
- 缩进不一致会导致光标卡在不同列:所有光标会严格对齐你选区里最短那行的末尾位置
- 想统一从行首开始编辑?先按
Home把主光标移到第一行开头,再按Ctrl+Shift+L - 要加前缀(如
//)?别依赖这个命令,改用列选择:Alt+鼠标垂直拖动(Win/Linux)或Cmd+Shift+鼠标拖动(Mac)
正则替换后 $1 不展开,只输出字面量
$1 失效通常不是正则写错了,而是三个基础条件没满足:模式未启用、括号未转义、替换语法写错。
打开 Ctrl+H,确保 .* 图标点亮(变蓝),状态栏显示 Regex 才算真正启用;查找框里要匹配字面 (,得写成 \(;否则会被当捕获组解析,导致分组编号错乱;替换框只认 $1,不支持 \1 或 ${1};$0 表示整行匹配,可用于加前缀,如 id_$0。
- 替换前务必点
Find看高亮数量是否符合预期——这步跳过,90% 的误操作就发生在这里 - 跨行匹配必须加
(?s)前缀,否则.不吃换行符 - 想给每行末尾加内容?查
$,替换成你要的内容(如;),比列编辑更稳
全局替换 Ctrl+Shift+F 容易批量污染代码
Ctrl+Shift+F 是纯文本搜索,不像 IDE 那样有语义分析。搜 console.log 全删,结果把 JSON 字符串里的 "console.log" 也干掉了。
Where 框填 . 才是整个项目;填空 = 只搜已打开标签页;路径必须用 /(Windows 也不例外),如 ./src/**/*.js;大项目记得关掉 index_files 设置,否则搜索卡死或漏文件。
- 正则跨行匹配必须加
(?s)前缀,否则.不吃换行符 - 替换前务必点
Find看高亮是否精准——尤其注意混合换行符(\r\nvs\n)可能让^或$失效 - 处理配置文件或日志时,空行容易被忽略——
Ctrl+Shift+L生成的光标虽在空行开头,但输内容时不会自动跳过,得手动检查











