0

0

VSCode 的搜索排除(Search: Exclude Settings)功能如何忽略不必要的文件?

狼影

狼影

发布时间:2025-09-21 13:22:01

|

324人浏览过

|

来源于php中文网

原创

正确配置search.exclude和files.exclude可提升VSCode搜索效率与结果聚焦性,前者控制全局搜索范围,后者影响资源管理器显示,需根据项目需求在用户或工作区设置中通过glob模式精准排除文件。

vscode 的搜索排除(search: exclude settings)功能如何忽略不必要的文件?

VSCode的搜索排除功能,本质上是通过配置特定的文件和文件夹模式,来告诉编辑器在执行全局搜索时应该忽略哪些内容。这主要是通过修改工作区或用户设置中的

search.exclude
files.exclude
配置项来实现的。这样做不仅能显著提升搜索效率,减少不必要的等待时间,还能让搜索结果更加聚焦,避免被大量的构建产物、依赖文件或版本控制元数据所干扰,从而提高开发体验。

解决方案

要有效地忽略VSCode搜索中不必要的文件,核心在于正确配置

search.exclude
files.exclude
这两个设置。它们可以分别在用户设置(全局生效)或工作区设置(仅当前项目生效)中进行配置。我个人建议,对于项目特有的排除规则,尽量使用工作区设置,这样团队成员之间也能共享这些配置,保持一致性。

配置步骤:

  1. 打开设置:

    • 通过快捷键
      Ctrl + ,
      (Windows/Linux) 或
      Cmd + ,
      (macOS) 打开VSCode设置。
    • 或者通过菜单
      文件 (File)
      >
      首选项 (Preferences)
      >
      设置 (Settings)
  2. 搜索配置项:

    • 在设置搜索框中输入
      search.exclude
      files.exclude
  3. 添加排除规则:

    • 通过UI界面: 你会看到一个列表,点击“添加模式”按钮,输入你想要排除的文件或文件夹的glob模式。例如,要排除

      node_modules
      文件夹,可以输入
      **/node_modules

    • 通过

      settings.json
      文件(推荐):

      • 在设置界面右上角有一个“打开设置 (JSON)”图标,点击它会打开你的
        settings.json
        文件。
      • 如果你想为当前工作区配置,可以在项目根目录下创建一个
        .vscode
        文件夹,并在其中创建
        settings.json
        文件。
      • settings.json
        中添加或修改以下结构:
      {
          "files.exclude": {
              "**/.git": true,
              "**/.svn": true,
              "**/.DS_Store": true,
              "**/node_modules": true,
              "**/bower_components": true,
              "**/*.log": true,
              "**/build": true
          },
          "search.exclude": {
              "**/node_modules": true,
              "**/bower_components": true,
              "**/.git": true,
              "**/.vscode": true,
              "**/dist": true,
              "**/*.min.js": true,
              "**/*.map": true
          },
          // 还可以结合使用 .gitignore 文件
          "search.useIgnoreFiles": true
      }

      true
      表示启用该排除规则。

Glob模式简介:

  • *
    :匹配路径段中的零个或多个字符,但不包括路径分隔符。
  • **
    :匹配任意数量的路径段(包括零个),常用于匹配任意深度的目录。
  • ?
    :匹配路径段中的一个字符。
  • [abc]
    :匹配路径段中的单个字符,可以是a、b或c。
  • {pattern1,pattern2}
    :匹配任何一个模式。

理解这些模式是高效配置排除规则的关键。

files.exclude
search.exclude
有什么区别?什么时候用哪个?

说实话,刚开始接触VSCode的时候,我个人也经常会把这两个搞混,觉得它们功能差不多。但深入理解后,你会发现它们各有侧重,虽然有交叉,但目的还是不太一样。

files.exclude
主要影响的是VSCode的文件资源管理器视图。当你设置了
files.exclude
规则后,匹配到的文件或文件夹就不会在左侧的文件资源管理器中显示了。这对于隐藏一些不常直接操作,但又必须存在的文件(比如
.git
文件夹、
node_modules
、各种构建输出目录)非常有用,能让你的文件树保持整洁,减少视觉上的干扰。此外,它也会影响一些文件相关的操作,比如快速打开(Go to File)。

search.exclude
顾名思义,它的核心作用是告诉VSCode在执行全局搜索
Ctrl+Shift+F
Cmd+Shift+F
)时,应该忽略哪些文件和文件夹。这意味着,即使某个文件在文件资源管理器中是可见的(因为没有被
files.exclude
排除),但如果它被
search.exclude
规则匹配了,那么全局搜索的结果中就不会包含这个文件里的内容。这在处理大型项目时尤其重要,比如我们通常不希望在
node_modules
dist
目录中搜索代码,因为那里通常是第三方库或编译后的代码,与我们的业务逻辑无关,搜索它们只会浪费时间并产生大量噪音。

总结一下我的看法:

ONLYOFFICE
ONLYOFFICE

用ONLYOFFICE管理你的网络私人办公室

下载
  • 如果你想让某个文件或文件夹不在文件资源管理器中显示,同时也不希望在全局搜索中找到它,那么同时配置
    files.exclude
    search.exclude
    是比较稳妥的做法。例如
    node_modules
  • 如果你只是想让某个文件或文件夹不出现在全局搜索结果中,但仍然希望它在文件资源管理器中可见(比如一些日志文件,或者某些配置目录),那就只配置
    search.exclude
  • 反之,如果某个文件只是不希望在文件资源管理器中看到,但偶尔可能需要全局搜索到它的内容(这种情况比较少见,但也不是没有),那就只配置
    files.exclude

通常情况下,

search.exclude
的范围会比
files.exclude
更广一些,因为它更专注于提升搜索效率和结果的相关性。

如何配置 VSCode 的
search.exclude
规则?有哪些常用的排除模式?

配置

search.exclude
规则,主要就是编辑
settings.json
文件,然后根据需求填入glob模式。理解glob模式是关键,它允许我们用简洁的方式匹配复杂的文件路径。

配置方法:

如前面提到的,最直接有效的方式是打开你的用户或工作区

settings.json
文件,然后添加或修改
search.exclude
对象。

{
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/.git": true,
        "**/.vscode": true,
        "**/dist": true,
        "**/build": true,
        "**/*.log": true,
        "**/*.map": true,
        "**/*.min.js": true,
        "**/*.bak": true,
        "src/assets/images": true, // 排除特定路径下的图片文件夹
        "temp/**": true, // 排除temp目录及其所有子文件
        "*.lock": true // 排除所有.lock文件
    }
}

常用的排除模式及其解释:

  1. **/node_modules
    : 这是最常见的一个。它会排除项目根目录下以及任何子目录中的
    node_modules
    文件夹及其所有内容。
    **
    在这里表示匹配任意层级的目录。
  2. **/bower_components
    : 类似于
    node_modules
    ,用于前端项目的Bower依赖。
  3. **/.git
    : 排除Git版本控制系统生成的
    .git
    文件夹。通常我们不希望搜索到版本控制的元数据。
  4. **/.vscode
    : 排除VSCode自身的工作区配置文件夹。这些文件通常与项目代码无关。
  5. **/dist
    : 排除常见的项目构建输出目录,如Webpack、Rollup等打包后的代码。
  6. **/build
    : 排除另一个常见的构建输出目录。
  7. **/*.log
    : 排除所有
    .log
    文件,因为日志文件通常内容庞大且不相关。
  8. **/*.map
    : 排除JavaScript或CSS的Source Map文件。这些是调试用的,不是实际代码。
  9. **/*.min.js
    : 排除所有压缩过的JavaScript文件。通常我们只关心未压缩的源码。
  10. **/*.bak
    : 排除各种备份文件。
  11. temp/**
    : 排除名为
    temp
    的文件夹及其内部的所有内容,无论它在项目中的哪个位置。
  12. *.lock
    : 排除项目根目录下所有
    .lock
    文件,比如
    package-lock.json
    (但通常我们会希望搜索到这个,所以具体情况具体分析)。
  13. src/assets/images
    : 排除
    src/assets/images
    这个特定路径下的文件夹。如果路径是绝对的,则不带
    **

这些模式可以根据你的项目结构和需求进行灵活组合。我个人觉得,维护一个清晰的

search.exclude
列表,能让你的VSCode使用体验好很多,特别是当项目越来越大、文件越来越多的时候。

为什么我的
search.exclude
设置没有生效?排查常见问题。

遇到

search.exclude
不生效的情况,我通常会从几个方面去排查,这几乎成了我的肌肉记忆了。这不像代码报错那样直接,但一般也逃不出这几点。

  1. 作用域问题:用户设置 vs. 工作区设置

    • 这是最常见的问题。你可能把排除规则加到了用户设置(全局生效)里,但项目里又有更具体的、冲突的工作区设置。工作区设置会覆盖用户设置。
    • 反过来也一样,如果你的规则在工作区设置里,但你期望它在所有项目里都生效,那它自然不会在其他项目里起作用。
    • 排查方法: 检查你的
      .vscode/settings.json
      (工作区设置)和全局的
      settings.json
      ,看看规则是不是被覆盖了,或者放错了地方。
  2. Glob模式语法错误或不精确

    • Glob模式有时候挺微妙的,一个
      *
      **
      的区别可能就导致完全不同的结果。
    • 比如,你可能想排除所有
      dist
      文件夹,写成了
      dist
      ,但如果
      dist
      在子目录里,比如
      src/dist
      ,那
      dist
      就匹配不到了,应该用
      **/dist
    • 排查方法: 仔细检查你的模式,确保它能准确匹配你想要排除的文件或文件夹。可以尝试在一些在线的glob模式测试工具上验证一下。
  3. JSON格式错误

    • settings.json
      本质上是一个JSON文件。少了逗号,多了括号,或者键值对格式不对,都会导致整个设置文件解析失败,自然你的排除规则也就不会生效了。
    • 排查方法: VSCode通常会对JSON语法错误有红色波浪线提示。仔细检查这些提示,确保JSON格式是正确的。
  4. search.useIgnoreFiles
    设置的影响

    • VSCode有一个
      search.useIgnoreFiles
      的设置,当它设为
      true
      时,VSCode会尊重
      .gitignore
      .ignore
      等文件中的排除规则。
    • 如果你的
      .gitignore
      文件里已经排除了某些内容,而你的
      search.exclude
      又试图排除同样的内容,或者你的
      search.exclude
      .gitignore
      冲突,可能会造成一些困惑。
    • 排查方法: 检查你的
      .gitignore
      文件,并理解
      search.exclude
      search.useIgnoreFiles
      是如何协同工作的。通常,
      search.exclude
      可以看作是在
      .gitignore
      基础上的一个补充或覆盖。
  5. VSCode缓存或需要重启

    • 虽然VSCode通常能实时应用设置变更,但偶尔也会遇到需要重启编辑器才能完全生效的情况,尤其是在对
      settings.json
      进行了较大改动之后。
    • 排查方法: 尝试关闭VSCode,然后重新打开项目。
  6. 文件或文件夹确实存在,但被其他机制隐藏

    • 这虽然不是
      search.exclude
      不生效的问题,但可能会让你误以为是。例如,某些文件可能被Git忽略了,或者被操作系统的隐藏属性标记了,导致你找不到,进而以为搜索也排除了。
    • 排查方法: 确认你要搜索的文件或文件夹确实存在,并且没有被其他系统层面的机制隐藏。

在我看来,遇到这种问题,一步步地排除是最有效的。从最常见的JSON错误和作用域问题开始,然后检查模式,最后再考虑重启或

useIgnoreFiles
的影响。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

419

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

75

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

36

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

61

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

42

2025.11.27

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.6万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号