search.exclude必须写入项目根目录的.vscode/settings.json才生效,如"**/node_modules": true;临时“Files to exclude”输入框优先级更高,会覆盖配置,修改后需重载窗口。

search.exclude 必须写进 .vscode/settings.json 才生效
项目级搜索忽略规则,只在工作区配置里起作用 —— 直接改用户 settings.json 是全局行为,容易误伤其他项目;而 search.exclude 写在项目根目录的 .vscode/settings.json 中,才能确保团队成员开箱即用、搜索结果一致。
常见错误是把规则塞进 files.exclude 里,或者随手建了个 settings.json 放错位置(比如放在 src/ 下)。VSCode 只认项目根目录下 .vscode/settings.json 这个路径。
- 必须创建
.vscode文件夹(不是.vscode/末尾带斜杠) -
settings.json是纯 JSON 文件,顶层不能有逗号错误、不能多逗号、不能用单引号 - 如果文件已存在,直接在顶层对象里加
"search.exclude"字段即可
排除 node_modules 和 dist 的正确 glob 写法
"**/node_modules": true 是唯一可靠写法,"node_modules": true 或 "*/node_modules" 全部无效。VSCode 的 glob 匹配器要求路径能跨任意层级匹配 —— 因为 node_modules 可能在 packages/foo/node_modules、src/lib/node_modules 等任意深度。
同理,"**/dist": true 比 "dist": true 安全得多;若还想排除 dist/ 下所有子内容(比如 dist/index.html),用 "**/dist/**": true 更彻底。
-
"**/node_modules": true✅ 覆盖所有嵌套层级 -
"**/dist/**": true✅ 排除 dist 目录及其全部内容 -
"**/*.log": true✅ 递归排除所有日志文件 -
"**/.git": true✅ 避免搜到 Git 元数据 - 值必须是布尔型
true,不能写成"true"字符串
临时排除会覆盖 search.exclude,别被它骗了
搜索面板右上角的 Files to exclude 输入框,优先级高于 search.exclude。只要那里非空(哪怕只填了一个 dist),VSCode 就完全忽略你在 .vscode/settings.json 里写的规则。
这常导致“我明明配了,怎么还搜得到 node_modules?”——其实只是你上次调试时随手填过 node_modules,忘了清空。
- 多个规则用英文逗号分隔:
**/test/**,**/mocks/** - 不要加空格:
**/test/**, **/mocks/**中的空格会让第二项失效 - 关闭搜索面板后自动清空,不保存、不写入任何配置
- 想验证配置是否生效?先清空这个输入框再试
CodeGeeX 的忽略要单独配,和 search.exclude 无关
如果你装了 CodeGeeX 插件,它完全不读 search.exclude 或 .gitignore。它的忽略靠独立字段 codegeex.ignorePatterns,且必须是数组格式。
低于 v2.4.0 的版本根本不支持该功能,升级前配了也白配。而且改完必须重启整个 VSCode 窗口,重载窗口没用 —— 旧进程还在用老 ignore 列表。
- 在
.vscode/settings.json中添加:"codegeex.ignorePatterns": ["**/node_modules/**", "**/dist/**"] - 确认插件版本 ≥ 2.4.0,否则设置项不会出现在设置搜索里
- 数组里每项都是字符串,语法错误会导致 CodeGeeX 自动补全功能整体禁用
.vscode/settings.json 提交与否,直接决定大家搜出来的结果是不是同一套逻辑。


















