Ctrl+D仅扩展当前选区的字面匹配,非全词匹配;全选相同词应使用Ctrl+Alt+G(Win/Linux)或Ctrl+Cmd+G(Mac),前提为双击选中目标词、关闭正则(.*)和大小写敏感(Aa)。

Ctrl+D 为什么只选中一个词,或根本没反应
因为 Ctrl+D 不是“找相同单词”,而是“从当前选区出发,找下一个完全相同的字符串”。它不识别语法,只做字面匹配,且必须以**已有选区**为前提。
常见失效场景:
- 光标停在
user_id的下划线位置,Ctrl+D会选中_,不是词 - 光标落在
"name"的引号内,Ctrl+D会把引号一起选中 - 未选中任何内容就按
Ctrl+D,Sublime 会尝试自动“双击”光标处——但这个动作受语言模式、输入法、插件干扰极大,结果不可控 - 已部分选中(如只框了
log而非完整console.log),Ctrl+D就只匹配log,不会自动扩到单词边界
真正一键全选所有相同词:用 Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(Mac)
这个快捷键触发的是 find_all_under 命令,本质是“全文查找 + 全部高亮”,比反复按 Ctrl+D 更可靠。
但它有三个硬性前提:
- 先手动双击选中目标词(比如
api_timeout),确保选区干净——不带空格、引号、括号 - 右下角状态栏不能亮着
.*(正则模式必须关闭),否则按正则规则匹配,结果不可控 - 大小写开关由右下角
Aa控制;默认不区分大小写,如需严格匹配User而非user,要点一下关闭
如果按了没反应,大概率是插件劫持了快捷键:打开 Preferences → Key Bindings,搜 find_all_under,确认它绑定的是 ctrl+alt+g(Win)或 ctrl+super+g(Mac)。
Alt+F3 是更鲁棒的全选入口,但默认大小写敏感
Alt+F3 行为类似 Ctrl+Alt+G,但对光标落点更宽容——哪怕光标只挨着单词,它也能识别出完整标识符。不过它默认开启大小写敏感(User ≠ user),容易漏选。
实操要点:
- 右下角显示
case?说明大小写敏感,点击关闭才能一并选中 - 光标在
get_user_name()中,Alt+F3可能只选中get或user——先双击选中整个函数名,再按Alt+F3 - 想只匹配独立
id,避开user_id或identity,得用正则:Ctrl+F输入\bid\b,点亮右下角W(Whole Word),再按Alt+Enter
批量修改后最容易被忽略的语义破坏点
Sublime 不做语法校验。你用 Ctrl+Alt+G 选中 12 处 user_id,其中 3 处在 JSON 字符串值里、2 处在注释中,它照常让你编辑——改完可能直接让 JSON 解析失败或注释变代码。
安全底线:
- 跨行、跨上下文替换前,务必加单词边界:
\buser_id\b(\b匹配字母/数字/下划线与非这些字符之间的位置) - 含特殊字符要转义:PHP 的
$user_id得写成\$user_id\b - 匹配数超 300?界面卡顿,直接进
Ctrl+H替换更高效,别硬进多光标编辑态
真正稳的操作链是:双击选词 → 确认右下角无 .* 和 case → 按 Ctrl+Alt+G → 快速扫一眼是否命中不该动的地方 —— 这一步跳过,后面修 bug 的时间远大于重选一次。


















