VSCode全局替换需先按Ctrl+Shift+H进入全局模式,确认右上角为“在文件中查找”,再输入正则(捕获组用$1)、设置glob路径(如*/.css)、点击“查找全部”后才可安全“替换全部”,否则无效或仅作用于内存。

VSCode全局替换不是按一次键就完事,关键在快捷键触发后是否进入对的模式、设对范围、用对语法——错一步,要么没反应,要么全项目崩。
Ctrl+Shift+H 按下没反应?先看右上角是不是卡在「当前文件」
很多人按 Ctrl+Shift+H(Win/Linux)或 Cmd+Shift+H(macOS)后只搜到当前文件内容,面板右上角显示灰色“文档”图标,说明它根本没进全局模式。这不是快捷键失效,是状态残留。
- 立刻再按一次 Ctrl+Shift+H,强制切回全局视图
- 或点面板右上角 ⋯ → 勾选「在文件中查找」(别信自动切换)
- 右下角若显示
Read-only,替换按钮会灰掉:必须解除文件只读,或用管理员权限重启 VSCode
Replace All 点了却没写入 Git?你只是改了内存,没落盘
Replace All 只修改编辑器内存中的文本,不触碰磁盘文件。标题栏出现 ● 圆点 ≠ 已保存,只是“已修改未保存”。
- 所有被替换的文件必须手动
Ctrl+S(或Cmd+K S批量保存)才真正写入 - 没在 VSCode 里打开过的文件,
Replace All对它们完全无效——它们压根没加载进编辑器 - 建议开启
File > Auto Save并设为afterDelay,避免漏存
正则替换总失败?$1 和 \1 根本不是一回事
VSCode 用 JavaScript 正则引擎,捕获组引用只认 $1、$2。写 \1 或 $$1 会静默失败:界面不报错,也不替换,只是原样保留原文。
- 查
class="([^"]+)",替换填class="$1 is-primary",不是class="\1 is-primary" - 要字面输出
$1,得写成$$1 - 中文括号、全角符号、未转义的
.或/会导致正则静默失效 - 建议先关掉
.*按钮,确认普通文本能搜到,再逐步加正则
限定 CSS 或 Vue 文件替换?别只输 .css,用 **/*.css 才扫全
在「包含文件」框里只填 .css 或 css 是无效的;必须用 glob 模式,否则 VSCode 不识别。
- 全部 CSS 文件:
**/*.css(推荐,覆盖子目录) - 仅 src 下的 Vue 文件:
src/**/*.vue - 排除 node_modules:
!node_modules/**(注意开头的!) - 多个条件组合:
src/**/*.{ts,js}匹配 ts 和 js
最易被忽略的点:全局替换前必须手动点「查找全部」——Replace All 只作用于当前已高亮的匹配项,不是实时扫描。没点这一步,就等于盲换。


















