Ctrl+Shift+H(Windows/Linux)或Cmd+Shift+H(macOS)仅在已加载文件夹工作区时有效,需通过File→Open Folder…打开项目根目录,确保焦点在编辑器且无插件冲突,再手动启用正则模式。

Ctrl+Shift+H 打不开?先确认工作区已加载
VSCode 的全局替换快捷键 Ctrl+Shift+H(Windows/Linux)或 Cmd+Shift+H(macOS)只在「已打开文件夹工作区」下有效。如果右下角状态栏显示 No folder opened 或仅显示一个文件名(如 index.ts),那它实际退化为单文件替换,根本不会扫描子目录。
必须通过 File → Open Folder… 加载项目根目录(比如 my-app/),而不是用 Open File… 打开单个文件。多根工作区(.code-workspace)也支持,但需确保所有文件夹图标无感叹号——有感叹号表示加载失败或路径无效。
快捷键没反应?检查焦点和键盘映射
这个快捷键只在搜索面板未激活、且编辑器区域有焦点时才生效。如果光标落在终端、调试控制台、侧边树视图或 Git 面板里,Ctrl+Shift+H 会被忽略或触发其他命令。
- 按
Ctrl+Shift+H前,先点一下编辑器空白处确保焦点回归 - MacBook 外接非美式键盘时,
Cmd+R(正则开关)可能需要加Fn键,即Fn+Cmd+R - 某些插件(如 Vim 模式)会劫持快捷键;可临时禁用插件验证是否冲突
替代路径:从全局搜索面板切入更稳
如果你总记混或快捷键失效,走“二步法”反而更可靠:
- 先按
Ctrl+Shift+F(macOS:Cmd+Shift+F)打开全局搜索面板 - 输入关键词后,点击搜索框右侧的 Replace 图标(或按
Alt+Enter),自动展开替换输入框 - 此时再输替换内容、设
files to include(如**/*.ts),逻辑清晰不易漏
这个路径不依赖快捷键记忆,也绕过了“面板未激活导致快捷键静默失败”的常见卡点。
正则模式必须手动启用,不能靠快捷键一步到位
Ctrl+Shift+H 只打开面板,不自动开启正则。想用 $1 捕获组或 \b 单词边界,必须额外操作:
- 点面板右上角的
.*图标,或按Alt+R(Win/Linux)/Cmd+R(macOS) - 确认图标变蓝,且右下角出现
Regex标签才算真正启用 - 别误点
Aa(大小写)或ab(整词)按钮——它们会强制关闭正则状态,即使.*看似亮着也无效
真正容易被忽略的是:正则启用后,. 默认不匹配换行符;要跨行,还得额外点 ↵ 图标(或按 Cmd+Option+M),否则写 foo[\s\S]*bar 也白搭。


















