Ctrl+Shift+H(Win/Linux)或Cmd+Shift+H(macOS)是VS Code全局替换快捷键;需先缩范围、手动启用正则(Alt+R/Cmd+R)、用$1而非\1、Find All后再Replace All,并手动保存。

Ctrl+Shift+H 是全局替换的入口,不是 Ctrl+H
很多人卡在第一步,是因为误用 Ctrl+H(只作用于当前文件)去尝试改整个项目。真正触发「跨文件夹全局替换」的快捷键是 Ctrl+Shift+H(Windows/Linux)或 Cmd+Shift+H(macOS)。它直接打开“在文件中替换”视图,而不是先查再换的分步流程。
这个快捷键一按就进面板,但别急着输内容——它默认扫描整个工作区,包括 node_modules、dist 这类目录,容易卡顿甚至误改。务必先点右上角的文件夹图标,把范围缩到 src/**/*.ts 或 *.js 这种明确路径里。
正则模式必须手动启用,Alt+R / Cmd+R 是唯一可靠开关
写好 \d+ 却搜不到数字?大概率是正则根本没开。VS Code 不会自动识别你输入的是正则,.* 图标不点亮=纯字符串匹配。
-
Alt+R(Win/Linux)或Cmd+R(macOS)是在替换面板已激活时,唯一能稳定切换正则模式的快捷键 - 图标变蓝 + 右下角出现
Regex标签,才算真正启用;单靠输\b或$1不生效 - 别点错按钮:
Aa(大小写)和\(全字匹配)会覆盖正则状态,导致 .* 图标看似亮着却失效
替换字段里只能用 $1,不能用 \1 或 ${1}
正则捕获组在替换时有严格语法限制:VS Code 只认 、、$& 这三种形式。其他写法比如 、、$<name></name> 全部被当普通文本处理,不会展开。
常见翻车点:
- 想把
console\.log\(["'](.+?)["']\)换成debugger; // $1,结果替换成debugger; // \1—— 因为填了\1而不是$1 - 要字面输出
$abc,得写成$$abc;写成$abc会被截断为$a后丢弃bc - 括号必须英文半角、严格配对;嵌套括号会导致正则解析失败,整个搜索无结果
Replace All 不是实时扫描,必须先点 Find All
Replace All 按钮只作用于当前已高亮的匹配项,不是边扫边换。如果你跳过“查找全部”,直接点“全部替换”,它可能只改了前几处,漏掉后面新发现的匹配。
安全操作链:
- 先输好查找/替换内容,确认 .* 和 Aa 等选项已设对
- 点搜索框右侧的放大镜图标(
Find All),等左侧面板列出所有匹配项 - 快速扫一眼预览,重点看上下文是否合理(比如是否误进了注释或字符串)
- 确认无误后,再点
Replace All右侧的双箭头图标
最易忽略的是:VS Code 默认不保存替换后的文件,改完必须手动 Ctrl+Shift+S 或逐个保存,否则关掉编辑器就丢了。


















