alt+f3(win/linux)或ctrl+cmd+g(macos)是sublime text中唯一原生支持全文匹配并生成多光标的快捷键,但需满足光标位于单词字符内且正则模式关闭两个前提。

Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS)是选中所有相同内容的正确快捷键
它不是“可能有效”,而是 Sublime Text 唯一原生支持的、真正触发全文匹配并生成多光标的操作。但必须满足两个硬性前提:光标得落在目标词的任意一个字母/数字/下划线字符内(比如 user_id 的 u 或 _ 上),且查找面板右下角的 .* 图标不能亮起(即正则模式必须关闭)。如果光标停在空格、括号后、引号里,或你只点了单词边缘却没真正“进入”它,这个快捷键就完全没反应。
常见误操作包括:
– 想选中所有 log,结果光标悬在 console.log 的点号后面 → 按 Alt+F3 无效
– 变量名含连字符如 api-timeout,光标落在 - 上 → Ctrl+Alt+G 不识别为完整 token
– 右下角 .* 亮着,此时 Alt+F3 会按正则解释 log(比如匹配 blog、log123)→ 先按 Alt+R 关掉正则
Ctrl+D 只能增量选中,别把它当“全选”用
Ctrl+D 的本质是“找下一个完全相同的字符串”,从当前光标位置开始向下线性扫描,不回溯、不跨折叠块、不跳过注释或字符串里的内容。它不会告诉你还有多少处没选中,也不会自动过滤子串。
- 按一次
Ctrl+D:选中当前光标所在词(前提是光标在词内) - 再按一次:选中文档中**当前位置之后**的第一个相同词(比如第 3 行的
data) - 遇到不想改的(如 JSON 字符串里的
"data"):先按Ctrl+K,再按Ctrl+D跳过 - 选多了?按
Ctrl+U撤销上一次添加,比狂按Esc精准得多 - 按了没反应?双击目标词确保整词被选中,再试
需要精准控制范围时,用 Ctrl+F + Alt+Enter
当你不确定 Alt+F3 会不会把注释、字符串、JSON 值里的同名字段一起卷进来,或者要限定只改某段代码块,Ctrl+F 打开查找面板才是最稳路径。它支持实时预览匹配数、开关 Alt+W(Whole Word)、Alt+C(Match Case)、Alt+R(Regex),还能在 Where 栏填路径如 ./src/**/*.js 限定文件范围。
典型场景:
– 只改 JS 中的 id 字段名,不碰值:输入正则 "id"(?=\s*:),再按 Alt+Enter
– 避免匹配 user_id 里的 id:关掉正则,打开 Alt+W,搜 id
– 匹配数超 500 导致卡顿:先滚动到文件顶部再触发,或勾选 In Selection 先框定区域
多光标生成后,Sublime 不检查语义一致性
这是最容易被忽略的一点:一旦你用 Alt+F3 或 Ctrl+F+Alt+Enter 生成了 12 个光标,Sublime 就只管“这些位置的文本都叫 api_timeout”,它不会判断其中 3 个其实在 "api_timeout": "30s" 字符串里、2 个在注释中、1 个是函数参数名。你输 api_timeout_ms,它们全会同步改——包括不该动的地方。
所以关键动作永远在“选中前”:
– 看右下角匹配数(比如显示 17 matches)
– 按 Enter 逐个跳转确认上下文
– 对高风险字段(如 id、type、name),宁可多花 10 秒用正则加边界,也别依赖默认 Alt+F3











