VS Code 搜索怎样排除生成目录
项目一旦生成了 dist、build 或 coverage,VS Code 的跨文件搜索就可能把源码和构建产物混在一起。最稳妥的做法是:临时排查时在搜索视图填写 Files to exclude,长期使用则把规则写进工作区的 settings.json。search.exclude 负责搜索规则,files.exclude 还会影响资源管理器显示,而且搜索默认会继承它的排除项。
官方地址:https://code.visualstudio.com/
本文只处理“搜索怎样排除生成目录”这个问题,不把生成目录删除,也不改变构建工具本身的输出位置。
先区分三种排除入口
VS Code 里有三个容易混淆的入口:
| 入口 | 作用 | 适合场景 |
|---|---|---|
| Files to exclude | 只影响当前搜索操作 | 临时排查、一次性跳过大目录 |
search.exclude | 为工作区设置搜索排除规则 | 不想让构建产物进入搜索结果 |
files.exclude | 控制资源管理器显示,也会被搜索继承 | 项目中始终隐藏生成目录 |
如果只是今天排查一个问题,先用搜索视图的排除框;如果每次打开项目都需要相同规则,再写工作区设置。这样不会为了临时搜索修改团队共享配置。
在搜索视图临时排除生成目录
按 ⇧⌘F(Windows/Linux 为 Ctrl+Shift+F)打开跨文件搜索,输入要查找的词。搜索框下方默认只显示较少选项,点击省略号展开 Toggle Search Details,再找到 Files to exclude。
- 在 Files to exclude 输入
**/dist/**, **/build/**。 - 确认 Use Exclude Settings and Ignore Files 处于开启状态,让当前搜索同时遵守设置和忽略文件。
- 重新执行搜索,结果列表应保留
src等源码目录,而不再列出dist、build下的同名内容。

这里的排除框只服务当前搜索界面。清空输入或重新打开另一个搜索任务后,若没有工作区规则,生成目录仍可能回来。
用工作区 settings.json 固化规则
需要长期排除时,打开命令面板,执行 Preferences: Open Workspace Settings (JSON)。VS Code 会把工作区设置放在项目根目录的 .vscode/settings.json。下面的 JSON 可以直接作为起点:
{
"search.exclude": {
"**/dist/**": true,
"**/build/**": true
},
"files.exclude": {
"**/coverage/**": true
}
}
JSON 代码块保持严格格式,所以不在其中加入注释。search.exclude 让搜索默认跳过 dist 与 build;files.exclude 让资源管理器隐藏 coverage,同时搜索会继承这个排除项。若团队不希望资源管理器隐藏目录,可以只保留 search.exclude。

glob 写法要按入口区分
最常见的“不生效”不是设置名写错,而是通配符写在了不适用的位置。VS Code 官方文档特别说明,搜索视图的 glob 规则和 settings.json 中的规则不同:
- 写在 Files to exclude 时,搜索视图会假定路径可以从任意层级匹配,输入
dist往往就能覆盖工作区中的同名目录。 - 写在
search.exclude或files.exclude时,建议用**/dist/**覆盖嵌套目录;如果只想排除工作区根目录,可以写成./dist附近的明确路径规则。 - 多个模式可以用逗号分隔,但复杂项目更适合拆成多行 JSON,后续修改不容易漏掉目录。
如果生成目录名称本身可能出现在源码文件名中,优先写目录边界,例如 **/build/**,不要只写一个过宽的文本模式。
用对照搜索确认规则真的生效
配置保存后,不要只看资源管理器里目录是否消失,最好做一次对照搜索:
- 选择一个确定同时存在于源码和生成产物中的词,例如项目自己的函数名。
- 在搜索视图展开详细选项,检查 Use Exclude Settings and Ignore Files 没有被关闭。
- 观察结果:源码文件仍应出现,
dist、build和coverage下的结果应按配置消失。 - 如果需要临时查看产物,再在 Files to include 中指定生成目录,或暂时关闭排除规则;查看完恢复开关即可。
这种验收方式比单纯数结果条目更可靠:源码仍有命中,说明搜索没有被整体禁用;生成目录没有命中,说明排除范围确实被应用。
规则不生效时按这个顺序排查
- 看设置范围:确认打开的是 Workspace,而不是 User;工作区设置只对当前项目生效。
- 看搜索开关:如果关闭了 Use Exclude Settings and Ignore Files,
search.exclude、files.exclude和忽略文件都可能不参与这次搜索。 - 看路径层级:settings.json 中优先使用
**/目录名/**,不要把搜索框写法原样复制到所有位置。 - 看工作区根目录:多根工作区需要分别确认规则作用于哪个根目录,路径是相对于对应工作区根目录计算的。
- 看是否存在例外:以
!开头的例外规则可能重新放开某个子目录;如果项目设置继承了团队配置,也要检查是否有更具体的例外。
最后记住这套最小选择
临时搜索用 Files to exclude;只想让搜索默认忽略生成目录,用 search.exclude;希望资源管理器也隐藏并让搜索继承,再加 files.exclude。配置后用“源码仍命中、生成目录不命中”的对照搜索验收,基本就能避免把设置问题误判成搜索故障。
相关问题
- 为什么配置了 files.exclude,搜索仍然能看到生成目录?先检查搜索视图的 Use Exclude Settings and Ignore Files 是否关闭,再确认当前窗口打开的是含有该 .vscode/settings.json 的工作区。
- 搜索框里的排除规则能永久保存吗?它更适合当前操作;需要稳定复用时,把规则迁移到工作区的 search.exclude。
- 怎样只排除根目录的 dist?在工作区设置中写面向根目录的明确模式,并用一次同名子目录对照搜索确认范围。
VS Code 面包屑导航怎样显示当前文件的符号路径
- 上一篇
- VS Code 面包屑导航怎样显示当前文件的符号路径
- 下一篇
- VS Code 源代码管理怎样暂存未提交改动
-
- 文章 · 软件教程 | 27分钟前 | 命令行 · 开发工具 · git · Git maintenance git maintenance start Git仓库维护 后台维护
- Git maintenance start 怎样让仓库后台自动维护
- 375浏览 收藏
-
- 文章 · 软件教程 | 28分钟前 | VS Code launch.json tasks.json dependsOn preLaunchTask
- VS Code 调试前置任务怎样用 dependsOn 启动
- 481浏览 收藏
-
- 文章 · 软件教程 | 28分钟前 |
- VS Code tasks.json 怎样用 inputs 复用参数
- 326浏览 收藏
-
- 文章 · 软件教程 | 16小时前 |
- DBeaver 数据编辑器提交前怎样查看待执行变更
- 295浏览 收藏
-
- 文章 · 软件教程 | 16小时前 | JSON jq GitHub CLI Issue
- GitHub CLI 怎样用 JSON 输出批量筛选 issue
- 405浏览 收藏
-
- 文章 · 软件教程 | 16小时前 |
- Postman pre-request script 怎样把响应值写入环境
- 162浏览 收藏
-
- 文章 · 软件教程 | 16小时前 | JetBrains Find Usages Structural Search Structural Replace
- JetBrains Find Usages 与 Structural Search 适用范围
- 161浏览 收藏
-
- 文章 · 软件教程 | 16小时前 |
- GitHub Actions concurrency group 使用表达式时怎样避免误取消
- 279浏览 收藏
-
- 文章 · 软件教程 | 16小时前 | GitHub Actions Artifacts retention-days
- GitHub Actions artifacts 怎样只保留指定天数的构建产物
- 368浏览 收藏
-
- 文章 · 软件教程 | 16小时前 | 开发工具 · Git Git worktree worktree lock linked worktree Git 工作树 prune repair
- Git worktree lock 何时用于保护长期工作树
- 448浏览 收藏
-
- 文章 · 软件教程 | 16小时前 |
- Git merge-ort 与 rebase-merges 处理冲突有什么区别
- 357浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 1029次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 1029次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 1173次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 1133次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 972次使用
-
- 如何解决goland,idea全局搜索快捷键失效问题
- 2022-12-29 398浏览
-
- CloudQuery v1.4.2 发布 | 新增 PolarDB 、数据导入工具
- 2023-01-29 423浏览
-
- 字符集:ASCII,GB2312,Unicode,UTF-8,ANSI
- 2023-02-16 219浏览
-
- Redis FT.SEARCH 怎样按字段条件搜索文档
- 2026-10-26 293浏览
-
- Redis FT.SPELLCHECK 怎样排除业务专有词典
- 2026-10-29 225浏览

