alt+f3(win/linux)或 ctrl+cmd+g(macos)是最稳的全选入口,光标停在目标词任意字母上直接触发整词匹配多光标;ctrl+shift+l仅扩展已有选区,不支持搜索;正则全选需先输入正则并点击find all,再按ctrl+alt+g/ctrl+cmd+g。

能一次性选中,但必须分清“搜什么”和“怎么选”——搜错了,选得再快也白搭;选对了,改错一个就等于改错全部。
Alt+F3 或 Ctrl+Cmd+G 是最稳的全选入口
光标停在目标词(比如 user_id)任意字母上,不选中、不复制、不打开查找框,直接按 Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS),就能把文档里所有完全相同的出现位置变成多光标。
- 它默认走整词匹配(等价于正则
\buser_id\b),不会误中debug_user_id或user_id_old - 如果按了没反应,先检查右下角是否亮着
.*(正则模式)——开着它,Alt+F3会按正则规则匹配,结果不可控 - 大小写敏感由右下角
Aa按钮控制,默认关闭,User和user会被一起选中 - 中文输入法活跃时,组合键常被系统吞掉,切英文输入法再试
- 插件可能劫持快捷键,打开
Preferences → Key Bindings,搜find_all_under确认绑定是否正确
Ctrl+Shift+L 不是搜索命令,而是“选区扩展器”
Ctrl+Shift+L(Win/Linux)或 Cmd+Shift+L(macOS)的作用,是把当前已选中的文本(哪怕只是双击选中一个词),立刻扩展成所有匹配位置的多光标。它不认正则、不看搜索面板设置,只认你手上这个选区。
- 必须先有明确选区:双击
api_url再按Ctrl+Shift+L,才有效;光标悬空按,什么也不会发生 - 选中的是带引号的
"api_url",那它只会匹配完整字符串,不会单独匹配api_url——想单独改变量名,得先双击词本体,去掉引号再操作 - 在注释里选中
// api_url,默认不会匹配代码里的api_url,因为 Sublime 按语法作用域隔离 - 大文件慎用:几千个匹配项同时激活,Sublime 可能卡顿甚至崩溃,建议先用 Find 面板点开几个匹配项确认范围
正则全选必须走 Find All + 快捷键两步
想用正则(比如 \bconsole\.log\b 或 "(.*?)")批量定位,不能跳过 Find All 这一步。单纯输正则、按 Alt+F3 是无效的。
- 先打开
Ctrl+F,输入正则,勾选右下角.*按钮启用正则模式 - 点击
Find All或按Enter——此时只是高亮+跳转,还没可编辑光标 - 再按
Ctrl+Alt+G(Win/Linux)或Ctrl+Cmd+G(macOS),所有匹配才真正变成多光标 - 常见翻车点:
(".*)跨行吞掉所有引号 → 改成"(.*?)"并勾选右下角\n(.匹配换行) - 替换里用
$1却为空 → 检查括号分组是否捕获成功,比如(\w+)\.js$在main.min.js(末尾有空格)里就不匹配
为什么 Ctrl+D 不算“全选”,而 Alt+F3 才是
Ctrl+D(Win/Linux)或 Cmd+D(macOS)是“增量选中”:它只从当前光标位置开始,线性向下找下一个**完全相同**的词,不回溯、不跳过字符串、也不识别作用域。
- 第一次按:选中光标所在词(需双击或拖选确保整词被包住)
- 第二次起:每次追加一个后续匹配,顺序严格按文本流出现位置
- 想跳过某处(比如字符串里的
"user_id")→ 先按Ctrl+K,再按Ctrl+D - 选多了?按
Ctrl+U撤销上一次添加,比狂按Esc精准得多 - 它不会帮你识别
const user_id =和obj["user_id"]的语义差异,更不会跳过注释或 JSON 字符串值
真正容易被忽略的一点:Sublime 不会告诉你哪些地方不该改。它不区分变量声明、字符串字面量、注释或 JSON 值,只要文本一致,就全拉进来——批量修改前,务必人工确认高亮范围,尤其是跨上下文(如 JS + HTML 混排)或含特殊符号(-、.、:)的变量名。











