ctrl+shift+f(windows/linux)或cmd+shift+f(macos)是vscode唯一真正全局搜索快捷键;ctrl+f仅限当前文件,面板顶部需显示蓝色文件夹图标且排除规则、正则引用(用$1非\1)、手动保存等均影响结果。

Ctrl+Shift+F 是唯一能触发真正全局搜索的快捷键
很多人按了 Ctrl+F 就以为在搜整个项目,结果只看到当前文件里的几行——Ctrl+F 压根不扫描其他文件,它和项目结构完全无关。Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)才是唯一入口。左侧活动栏那个放大镜图标点一下也行,但快捷键更快、更可控。
搜索面板顶部显示“在当前文件中查找”?那是假全局
输完词回车没结果,大概率是因为面板顶部图标是灰色文档(在当前文件中查找),不是蓝色文件夹(在文件中查找)。这个状态不会报错,只是安静地限缩范围——你根本不知道它没扫别的文件。
- 点搜索面板右上角
⋯菜单 → 勾选「在文件中查找」 - 或者直接再按一次
Ctrl+Shift+F,强制重置为全局模式 - 确认输入框左侧图标是蓝色文件夹,不是灰色文档
搜不到 node_modules 或 src/api?search.exclude 在静默拦截
VSCode 默认跳过 node_modules、.git、dist 等目录,靠 search.exclude 控制。这不是 bug,是默认配置,但没人告诉你它正在悄悄过滤。
- VSCode 1.118:点搜索面板右上角
⋯→ 展开高级选项 → 清空files to exclude输入框,或改成!**/node_modules/**显式包含 - 取消勾选「Use Exclude Settings and Ignore Files」,否则
.gitignore和settings.json里的search.exclude仍生效 - 想只搜源码?在
files to include填src/**/*.{js,ts},通配符规则和.gitignore一致 - 注意:
node_modules或node_modules/**无效;必须用**/node_modules/**才能匹配所有层级
正则替换写 \1 没效果?VSCode 只认 $1
开启正则(点 .* 图标)后,捕获组引用必须用 $1、$2。写成 \1 或 ${1} 不会触发替换——界面不报错,只是原样保留。
- 查找
class="([^"]+) primary",替换填class="$1 is-primary",不是class="\1 is-primary" -
$后必须紧跟数字,$1abc会被解释为变量$1加字符串abc;要字面量输出$1,得写成$$1 - 中文括号、全角符号、未转义的点号
.或斜杠/会让正则静默失效;建议先关掉.*确认普通文本能搜到,再逐步加正则
最常被忽略的是:替换后必须手动 Ctrl+S 才真正写入磁盘。即使标题栏出现 ● 圆点,也只是编辑器内存已改——没保存,等于白干。更隐蔽的是,如果你没打开过那个文件,它甚至根本不会出现在编辑器标签页里。











