ctrl+shift+h(windows/linux)或cmd+shift+h(macos)是vscode中唯一支持跨文件全局替换的快捷键,直接打开带替换框的“在文件中替换”面板;需确保光标位于编辑器代码区,手动指定文件类型如.vue,启用正则需点击.图标,replace all前必须先执行find all。

Ctrl+Shift+H 是全局替换的唯一快捷入口
别用 Ctrl+F 或 Ctrl+H 去试全局替换——它们只作用于当前文件。真正能跨文件批量改关键词的,只有 Ctrl+Shift+H(Windows/Linux)或 Cmd+Shift+H(macOS)。这个快捷键直接打开「在文件中替换」面板,不是先搜再换,而是一开始就带替换框。
常见卡点:Ctrl+Shift+H 按了没反应,大概率是光标落在终端、调试控制台或 Git 输出面板里,而不是编辑器区域。务必先点一下任意 .ts/.js/.vue 文件的代码区再按。
限定 *.vue 或 *.php 等文件类型必须手动填
VSCode 不会自动猜你要改哪类文件。打开 Ctrl+Shift+H 后,搜索框下方会出现「files to include」输入框,这里必须手动输入 *.vue 或 src/**/*.php,否则默认扫整个工作区,可能误改 node_modules 里的内容。
- 想只动 Vue 组件?填
*.vue,别写*.vue,*.js——逗号分隔不生效,得用*.vue;*.js - 路径模式支持
**,比如src/components/**/*.{ts,vue},但括号里不能有空格 - 如果填了
dist/却没生效,检查右上角是否误点了「排除文件夹」图标,它会覆盖 include 设置
正则替换时 $1 要求括号存在且编号连续
想把 console.log("x") 换成 debugger; // x,正则搜 console\.log\(["'](.+?)["']\),替换填 debugger; // $1 才有效。填 \1 或漏掉括号,VSCode 就当普通文本处理,不报错也不替换。
-
$在替换字段是特殊字符,要输出字面量$abc,得写成$$abc - 非捕获组
(?:...)不占编号,(a)(?:b)(c)只有$1和$2,没有$3 - 启用正则前,务必点亮搜索框右侧的
.*图标;它变蓝才算开启,否则括号和$1全部失效
Replace All 不扫描实时内容,必须先触发 Find All
Replace All 按钮只作用于当前已高亮的匹配项,不是边扫边换。你输完搜索词后,必须按 Enter 或点击「查找全部」按钮,等左侧结果列表展开、每条都可点了,再点 Replace All,否则很可能漏掉某些文件里的匹配。
更稳妥的做法:先在「files to include」里填窄一点的范围(比如 src/views/*.vue),确认几条结果无误,再扩大到 *.vue;毕竟 VSCode 的替换不可撤回,Git 分支备份比后悔强得多。











