ctrl+shift+f(windows/linux)或 cmd+shift+f(macos)是唯一全局搜索快捷键,按两次可切换至全局模式;灰色文档图标表示仅当前文件搜索,需确保顶部为蓝色文件夹图标;默认跳过 node_modules 等目录,由 search.exclude 和 .gitignore 控制;正则替换须用 $1 引用捕获组,replace all 不自动保存。

Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是唯一能一键唤醒全局搜索框的快捷键,没有替代方案,也不支持自定义为其他组合键生效。
为什么按了 Ctrl+Shift+F 却只在当前文件里搜?
这不是快捷键失效,而是搜索面板卡在「当前文件」模式。顶部图标显示灰色文档(?)时,它根本没扫描工作区——只搜你正编辑的那个标签页。
- 再按一次
Ctrl+Shift+F,强制重置为全局模式 - 或点搜索面板右上角
⋯→ 勾选「在文件中查找」 - 确认输入框左侧图标是蓝色文件夹(
?),不是灰色文档
搜不到 node_modules 或 dist 里的内容?
VSCode 默认跳过这些目录,靠 search.exclude 控制,不是 bug,是默认行为。它甚至会尊重 .gitignore 里的规则。
- 点搜索面板右上角
⋯→ 展开高级选项 → 清空files to exclude输入框 - 或填
!**/node_modules/**显式包含(只写node_modules无效) - 取消勾选「Use Exclude Settings and Ignore Files」才能绕过所有过滤
- 想限定范围?在
files to include填src/**/*.{js,ts},通配符规则和.gitignore一致
正则替换总不生效?
VSCode 用 JavaScript 正则引擎,捕获组引用必须写成 $1,写 \1 或 ${1} 都静默失败——界面不报错,也不替换,只是原样保留。
- 开启正则(点
.*图标)后,查class="([^"]+)",替换填class="$1 is-primary" - 要字面量输出
$1,得写成$$1;$1abc会被解释为变量$1加字符串abc - 中文括号、全角符号、未转义的
.或/会让正则静默失效,建议先关掉.*确认普通文本能搜到,再逐步加正则
最常被忽略的一点:Replace All 只改内存,不自动保存。没手动 Ctrl+S,文件系统里什么都没变;更隐蔽的是,没打开过的文件压根不会加载进编辑器,对它们的替换完全无效。











