ctrl+d是逐个加选下一个相同词,ctrl+alt+g(win/linux)或ctrl+cmd+g(macos)才一键全选;后者需手动选中纯标识符、关闭正则模式(右下角.*未亮)、合理设置大小写开关。

Ctrl+D 逐个加选 vs Ctrl+Alt+G 一键全选
很多人按 Ctrl+D 十几次只选中三四个词,是因为它不是“全选”,而是“找下一个匹配项”——光标停在哪、初始选中范围多大、是否开启正则,都直接影响结果。真正想一次性覆盖全部相同词汇,该用 Ctrl+Alt+G(Windows/Linux)或 Ctrl+Cmd+G(macOS)。但必须满足三个硬条件:
• 手动双击或拖选目标词(比如 user_id),确保只选中纯标识符,不带空格、引号、括号
• 右下角 .* 图标未亮起(即正则模式关闭),否则它会按正则规则匹配,结果不可控
• 大小写开关(Aa)按需设置;默认不区分大小写,若需严格匹配 User 而非 user,要点掉它
按完没反应?大概率是插件劫持了快捷键:打开 Preferences → Key Bindings,搜 find_all_under,确认绑定正确。
跨行替换前必须加 \b 控制单词边界
直接搜 user_id 会误改 "user_id": "abc"、my_user_id、甚至路径中的 /user_id/。Sublime 不懂语义,只做字符串匹配。
安全做法是加单词边界:\buser_id\b。
• \b 匹配的是字母/数字/下划线与非这些字符之间的位置,不是空格本身
• 它能避开子串,但对中文无效(中文无“单词”概念)
• 特殊字符要转义,比如 PHP 的 $user_id 得写成 $user_id\b
操作流程:Ctrl+H → 点 .* 启用正则 → 查找框填 \buser_id\b → 先点 Find All,看右下角匹配数,并手动检查是否命中引号内、注释、正则字面量(如 /user_id/g)→ 确认无误再点 Replace All。
Ctrl+Shift+L 不是万能的,它只作用于已选区域
Ctrl+Shift+L 常被误认为“全文每行都加光标”,其实它只把当前选中的每一行末尾(换行符前)变成一个光标。如果没手动选中任何内容,它会默认炸开全文所有行——大文件极易卡死或崩溃。
安全用法:
• 先用鼠标拖选或 Shift+↓ 选中目标行块(例如配置项的 5 行)
• 再按 Ctrl+Shift+L,光标精准落在每行末尾
• 按 End 或 Ctrl+→ 移动到行尾,输入内容(如 ;)
• 若想加前缀,按 Home 或 Ctrl+← 回到行首,再输入(如 config.)
注意:空行也会被拆出光标,但光标停在开头,容易漏改;结构不一致(如有的行开头有空格)会导致光标不对齐,得先用正则清理格式。
正则跨行匹配必须加 (?s) 前缀
默认情况下,正则里的 . 不匹配换行符,所以 import.*?from 搜不到跨行的 import 语句。想让 . 吃掉换行,必须加 (?s) 前缀:(?s)import.*?from。
常见错误:
• 忘记点 .* 图标启用正则,写了 (?s) 也白搭
• Ctrl+F、Ctrl+H、Ctrl+Shift+F 三个面板的 .* 开关各自独立,必须分别点开
• 替换时用捕获组,比如把 id="(\d+)" 改成 data-id="$1",别漏写 $1 中的美元符号
最危险的不是不会写正则,而是忘了自己正在操作的是纯文本——所有“看起来像”的东西,Sublime 都照单全收,包括 JSON 字符串里的键名、注释里的示例、甚至正则字面量本身。











