Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(macOS)是VSCode全局搜索唯一入口,用于扫描整个工作区;Ctrl+F仅限当前文件,非全局模式。

Ctrl+Shift+F 是全局搜索的唯一入口,不是 Ctrl+F
很多人按 Ctrl+F 后输词没结果,就以为 VSCode 搜不到——其实它根本没进全局模式。Ctrl+F 只搜当前打开的文件,和项目结构无关;真正扫整个工作区的,必须是 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)。左侧活动栏那个放大镜图标点一下也行,但快捷键更快。
常见误操作:
- 面板顶部显示“在当前文件中查找”(灰色文档图标),说明卡在局部模式,得再按一次
Ctrl+Shift+F或点右上角 ⋯ → 勾选「在文件中查找」 - 右下角状态栏显示的路径不是你预期的工作区根目录,比如开了多个文件夹却搜错了上下文
- 首次搜索延迟 1–2 秒,右下角有「搜索中…」提示,别急着重输
search.exclude 默认拦掉 node_modules,但不会告诉你
VSCode 默认跳过 node_modules、.git、dist 等目录,靠 search.exclude 控制。这不是 bug,是默认配置——但界面不提示,只安静地过滤掉。
想搜 node_modules 里的内容:
- 点搜索面板右上角 ⋯ → 展开高级选项 → 清空「files to exclude」输入框,或改成
!**/node_modules/**显式包含 - 取消勾选「Use Exclude Settings and Ignore Files」,否则
.gitignore和settings.json里的search.exclude仍生效 - 只填
node_modules或node_modules/**无效;必须用**/node_modules/**才能匹配所有层级
想只搜源码?在「files to include」填 src/**/*.{js,ts},通配符规则和 .gitignore 一致。
正则替换写 \1 没效果,VSCode 只认 $1
VSCode 使用 JavaScript 正则引擎,捕获组引用统一用 、。 或 不会触发替换——界面不报错,只是原样保留。
实操要点:
- 开启正则(点 .* 图标)后,查找
class="([^"]+) primary",替换填class="$1 is-primary",不是class="\1 is-primary" -
$后必须紧跟数字,$1abc会被解释为变量$1加字符串abc;要字面量输出$1,得写成$$1 - 中文括号、全角符号、未转义的点号
.或斜杠/会让正则静默失效;建议先关掉 .* 确认普通文本能搜到,再逐步加正则
Replace All 不写入磁盘,必须手动保存
Replace All 默认只修改编辑器内存中的内容,不会自动保存到文件系统。即使标题栏出现 ● 圆点,也得手动 Ctrl+S 才真正落盘。
更隐蔽的是:如果你没打开过那个文件,它甚至根本不会出现在编辑器标签页里——替换操作已执行,但你完全看不到变化。
右下角若显示 Read-only,替换按钮会灰掉,必须解除只读或用管理员权限重启 VSCode。
批量替换前务必先点 Enter 或 Find All,确认高亮结果符合预期——VS Code 不提供预览 diff,误操作无法撤回(除非你开了自动保存且 Git 已跟踪)。


















