Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(macOS)是VSCode唯一全局搜索快捷键;Ctrl+F仅限当前文件,需确认面板为“在文件中查找”、排除规则未误拦、正则替换用$1而非\1、替换后须手动保存或点“Replace in Files”。

Ctrl+Shift+F 是唯一能触发真正全局搜索的快捷键
Windows/Linux 用户必须用 Ctrl+Shift+F,macOS 用户必须用 Cmd+Shift+F。这不是可选项,而是 VSCode 唯一识别为“跨文件、跨目录扫描”的快捷键组合。Ctrl+F 或 Cmd+F 永远只作用于当前打开的文件标签页,哪怕你打开了 50 个文件,它也只搜那个正在编辑的页面。
常见错误是误点 Ctrl+F 后没结果,又反复输词、切文件、重启搜索——其实根本没进全局模式。确认是否成功:搜索面板顶部必须显示「在文件中查找」(蓝色文件夹图标),不是「在当前文件中查找」(灰色文档图标)。按一次 Ctrl+Shift+F 就能强制重置状态。
搜索不到 node_modules 或 dist?检查 search.exclude 和 ignore 设置
VSCode 默认跳过 node_modules、.git、dist、out 等目录,靠 search.exclude 控制,不是 bug,是预设行为。但没人提醒你它正在静默过滤。
- 在搜索面板右上角点 ⋯ → 展开「高级选项」→ 清空「files to exclude」输入框,或填
!**/node_modules/**显式包含 - 务必取消勾选「Use Exclude Settings and Ignore Files」,否则
.gitignore和settings.json里的search.exclude仍生效 - 想只搜源码?在「files to include」填
src/**/*.{js,ts,jsx,tsx};注意node_modules单独写无效,必须用**/node_modules/**
正则替换写 \1 没反应?VSCode 只认 $1
VSCode 使用 JavaScript 正则引擎,捕获组引用必须用 $1、$2,写成 \1 或 ${1} 都不会触发替换——界面不报错,只是原样保留文本。
开启正则(点 .* 图标)后,例如查找 class="([^"]+) primary",替换必须填 class=" is-primary",不能写 class=" is-primary"。$ 后必须紧跟数字;abc 会被解释为变量 加字符串 abc;要字面输出 ,得写成 $。
中文括号、全角符号、未转义的点号 . 或斜杠 / 会让正则静默失效。建议先关掉 .* 确认普通文本能搜到,再逐步加正则。
替换了但文件没变?你只改了内存,没保存到磁盘
Replace All 默认只修改编辑器内存中的内容,不会自动写入文件系统。即使标题栏出现 ● 圆点,也得手动按 Ctrl+S(或 Cmd+S)才真正落盘。
更隐蔽的是:如果你没打开过那个匹配的文件,它甚至根本不会出现在编辑器里——也就是说,你替换了 12 个文件,其中 8 个你从没点开过,它们就一直躺在磁盘上没被改写。批量操作前,建议先勾选「Preview Replace」,逐个确认再执行。
跨平台开发时尤其要注意路径分隔符和换行符差异,**/src/** 在 Windows 和 macOS 下都有效,但硬编码 C:\project\src 或 /Users/me/project/src 会破坏共享工作区配置。


















