ctrl+d是增量选中而非全选,仅匹配当前光标所在词的下一个严格匹配项;ctrl+alt+g/ctrl+cmd+g才是全选,但需光标落在字母上且默认开启全字匹配与大小写敏感。

Ctrl+D 是增量选中,不是全选
很多人按住 Ctrl+D 不放,以为能“扫完整个文件”,结果漏掉几处、卡在注释里、甚至把 username 里的 user 也揪出来——这不是 bug,是它本来的逻辑:Ctrl+D 只找当前光标所在词的下一个**严格匹配项**,从当前位置开始向下线性扫描,不回溯、不跳过字符串、也不识别单词边界。
常见问题包括:
- 按了没反应:光标停在空格、括号或引号上,必须落在单词字母内(比如
api_timeout的a或t) - 误选
username:因为没开Alt+W(Whole Word),user被当子串匹配了 - 跳过了某处:中间有折叠代码块,或混用了
\r\n和\n,它就卡住不继续
实操节奏:双击目标词确保整词被选中 → 按一次 Ctrl+D(选中当前)→ 停半秒 → 再按(加下一个)→ 想跳过?先按 Ctrl+K,再按 Ctrl+D。
Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(macOS)才是真·全选
这个快捷键会一次性为当前光标下单词的所有匹配位置创建光标,但它有个硬前提:光标必须落在目标词的任意一个字母上,不能悬在空格或符号后。它默认开启 “Whole Word” 和 “Match Case”,所以 api_timeout 不会匹配 api_timeout_v2 或 Api_Timeout。
风险点很明确:
- 它不区分作用域——注释、字符串、JSON 值里的相同文本全会被拉进来
- 匹配数超 500 时(比如日志里满屏
i),界面可能明显卡顿甚至无响应 - 它只作用于当前文件,不会跨标签页生效
想忽略大小写?按 Ctrl+Alt+U 切换开关;想匹配子串(比如所有含 id 的变量)?得先按 Alt+W 关掉 Whole Word。
Ctrl+F + Alt+Enter 最稳妥,尤其要过滤上下文时
当你不确定 Ctrl+Alt+G 会不会误伤,或者需要加条件(比如限定只改 JS 区域、排除注释),走查找面板最可控——看得见匹配数,也方便调参。
操作路径很固定:
- 把光标放在目标词上(如
log),按Ctrl+F,Sublime 会自动填入该词 - 点右下角图标切换模式:
Alt+W(Whole Word)、Alt+C(大小写)、Alt+R(正则) - 确认无误后,按
Alt+Enter(Win/Linux)或Cmd+Enter(macOS)触发Select All
例如,只想选中 JSON 中所有的 "id" 字段名,不选值?用正则 "id"(?=\s*:),再点 Select All;误选了注释里的相同词?关掉 .*,打开 \b(全字匹配),避免匹配到 user_id 里的 id。
选中后批量修改容易崩格式
选中完成后直接打字即可覆盖全部——但容易出问题:
- 如果某处被选中的词前后有空格或换行,新输入内容会吞掉原有空白,导致缩进错乱;建议先按
Ctrl+Shift+P调出命令面板,输入Indentation: Convert Indentation to Spaces统一缩进风格 - 修改含引号或括号的字符串(如
"name")时,别直接输title,否则引号丢失;应先按Ctrl+Shift+P运行Insert Snippet或用Ctrl+Shift+M选中引号内区域再改 - 选中跨多行的内容(比如多个函数名)后,按
Enter换行会把每处都拆成两行,慎用
真正难的不是怎么选,而是选完之后要不要改、在哪改、改完是否语义一致——Sublime 不会帮你判断逻辑合理性,它只忠实地执行你画下的光标。











