在Visual Studio Code中,使用文件模式可以配置什么设置来隐藏侧边栏的文件资源管理器中的文件?

我想隐藏某些文件组,如.meta和.git文件。


您可以配置模式来隐藏资源管理器和搜索中的文件和文件夹。

打开VS用户设置(主菜单:File > Preferences > Settings)。这将打开设置界面。 搜索文件:排除在搜索的顶部。 根据需要使用新的glob模式配置用户设置。在本例中,添加这个模式node_modules/,然后单击OK。模式语法非常强大。您可以在跨文件搜索主题下找到模式匹配的详细信息。

当你完成后,它应该看起来像这样:

如果您想直接编辑设置文件: 例如,在你的工作区中隐藏一个顶级的node_modules文件夹:

"files.exclude": {
    "node_modules/": true
}

隐藏所有以._开头的文件,如._。在OSX上找到DS_Store文件:

"files.exclude": {
    "**/._*": true
}

您还可以更改工作空间设置(主菜单:文件>首选项>工作空间设置)。工作区设置将创建.vscode/settings。Json文件在您当前的工作空间,将只应用于该工作空间。用户设置将全局应用于你打开的任何VS Code实例,但如果存在,它们不会覆盖工作区设置。阅读更多关于自定义用户和工作区设置的信息。


有时您只是想为特定项目隐藏某些文件类型。在这种情况下,您可以在项目文件夹中创建一个名为.vscode的文件夹并创建设置。Json文件(即.vscode/settings.json)。该文件中的所有设置将仅影响当前工作空间。

例如,在一个TypeScript项目中,这是我所使用的:

// Workspace settings
{
    // The following will hide the js and map files in the editor
    "files.exclude": {
        "**/*.js": true,
        "**/*.map": true
    }
}

我还想推荐vscode扩展Peep,它可以让你在你的项目settings.json中切换隐藏排除文件。

然后,为vscode命令行(命令面板)点击F1

ext install [enter] peep [enter]

你可以绑定“扩展”。peepToggle”到一个键,如Ctrl+Shift+P(默认情况下与F1相同),方便切换。按Ctrl+K Ctrl+S键绑定,输入窥视,选择窥视切换,添加你的绑定。


对于使用Unity3D的.meta文件,我发现隐藏的最佳模式是:

"files.exclude": {
  "*/**/**.meta": true
}

这将捕获所有文件夹和子文件夹,并将获取foo.cs.meta和foo.meta


“使隐藏”扩展工作伟大!

Make Hidden通过启用上下文菜单(允许您轻松执行隐藏/显示操作),提供了对项目目录的更多控制,视图窗格资源管理器可以查看隐藏项,并且能够保存工作区以快速在大量隐藏项之间切换。


如果你在一个Angular 2+应用上工作,并且像我一样喜欢干净的工作环境,请输入@omt66 answer并将下面的内容粘贴到你的设置中。json文件。 我建议您在所有初始设置完成后执行此操作。

注意:这实际上也会隐藏.vscode文件夹(带有settings.json)。(如果之后需要更改,请在本地文件资源管理器/文本编辑器中打开)

https://pastebin.com/X2NL6Vxb

{
    "files.exclude": {
        ".vscode":true,
        "node_modules/":true,
        "dist/":true,
        "e2e/":true,
        "*.json": true,
        "**/*.md": true,
        ".gitignore": true,
        "**/.gitkeep":true,
        ".editorconfig": true,
        "**/polyfills.ts": true,
        "**/main.ts": true,
        "**/tsconfig.app.json": true,
        "**/tsconfig.spec.json": true,
        "**/tslint.json": true,
        "**/karma.conf.js": true,
        "**/favicon.ico": true,
        "**/browserslist": true,
        "**/test.ts": true
    }
}

__pycache__文件夹和*。Pyc文件对开发人员来说是完全不必要的。为了从资源管理器视图中隐藏这些文件,我们需要编辑设置。json for VSCode。添加如下所示的文件夹和文件:

"files.exclude": {
  ...
  ...
  "**/*.pyc": {"when": "$(basename).py"}, 
  "**/__pycache__": true,
  ...
  ...
}

我在过去遇到了同样的问题,因为我正在寻找删除我们成功运行.java文件后生成的.class文件,因此.class文件在编译后自动创建,而.exe文件在编译C或c++代码后创建。

最简单的方法是通过按F1并从弹出窗口中选择Preferences: Open workspace settings来更改工作空间设置。然后滚动到文件:排除行,并在列表中添加一个标记- **/*.class,现在.class文件将不会显示在Vscode项目文件资源管理器中。

您可以使用相同的方法删除.exe文件,使用标记**/*.exe 用于C和c++文件。

谢谢

Manpreet辛格


如果你使用VSCode:

File > Preferences > Settings 搜索:

文件:排除

然后添加

* * / node_modules

单击OK。

你不需要重新启动或重新加载VSCode来生效


如果您希望隐藏node_modules之类的东西,那么接受的答案是完美的。 在使用静态元框架(如Astro.js)的情况下,您最终将使用index。Astro文件也有很多噪音,因为dist/test/index.html或/dist/about-page/index.html等…页面。

为了将它们从命令面板搜索中排除,但仍然能够检查文件树中的dist文件夹,我建议在.vscode/settings中使用以下命令。json文件

{
  "search.exclude": {
    "dist/**": true
  }
}

这样,你仍然可以保持它的可见性,而不会污染你的ctrl + p搜索。


PS:更多信息可以在这里找到(再次提交URL打开后直接进入高亮显示)。




2022新的文件资源管理器功能

有一些非常酷的新功能可以让开发者配置显示在侧边栏中的文件,以及提供隐藏文件的新方法,同时保持它们的可访问性。

这个答案包括

“探险家。fileniting”(新增至2022年4月) “files.exclude” 探险家。excludeGitIgnore(截至2022年6月新增)

文件不包括

所以这篇文章中包含的最好的答案,最初是“files.exclude”


VS Code的文件嵌套特性

因为“文件嵌套”是我认为在最近的版本中添加到VS Code的最酷的功能之一,我想我应该花时间创建一个动画gif图像来显示它是如何实时工作的。

下面是一个显示浏览器的gif图片。fileniting功能正在实时使用

文件嵌套非常酷,值得注意的是,像大多数VS Code特性一样,它需要为你的个人开发环境进行自定义配置。

Personally I find this is a good addition for the workspace scoped settings.json configuration file. Unless you only ever use VS Code for developing the same type of projects, using the same project template, over & over again (which I understand some people do) I suggest using it to configure each individual project. An alternative is per-language configuration. I don't use it this way, but it is very helpful with TypeScript's tsc emissions. For Example .d.ts files & *map files, they can configured to always be nested into *.js files, with the same name. Or the *.js files can be configured to nest under the *.ts files.

上面的两个注释指出,这是一个旨在改善编译语言环境的特性,这些编译器具有生成项目构建文件的编译器;特别是像TypeScript这样的“转译器”,

下面显示了一个“文件嵌套”配置,你可能会发现它被写到了“./.vscode/settings”。json”文件,属于TypeScript项目。

    "explorer.fileNesting.patterns": {
          "*.ts": "${capture}.js",
          "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts",
          "*.mts": "${capture}.mjs, ${capture}.d.mts",
          "*.mjs": "${capture}.mjs.map, ${capture}.min.mjs, ${capture}.d.mts",
          "*.cts": "${capture}.js",
          "*.cjs": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts",
          "*.jsx": "${capture}.js",
          "*.tsx": "${capture}.ts",
    }

上面的配置实际上来自我的一个项目,它导致以下行为:


我在下面列出了所有可用配置的完整列表,以及官方发布说明(早期形式的文档)的链接,其中包括“VS Code文件嵌套功能”。

截至2022-06-17,以下列表包含了“VS Code的文件嵌套功能”的所有可用配置。

explorer.fileNesting.enabled 控制是否大规模启用文件嵌套。它可以全局设置,也可以为特定的工作空间设置。 explorer.fileNesting.expand 控制默认情况下是否展开嵌套文件。 explorer.fileNesting.patterns 控制如何嵌套文件。默认配置为TypeScript和JavaScript项目提供嵌套智能,但鼓励您修改它以适应您自己的项目结构。一些例子:


Vs code关于新文件嵌套特性的官方发布说明





文件不包括


注:“文件不包括,已被其他答案覆盖,所以我会简短。” “重要的是我们要覆盖文件。不过,下一个功能是在此基础上开发的。”

文件嵌套很棒,但不要排除文件。暂时还没有。比较像浏览器这样的特性。fileniting和files。相互排斥并不是很有帮助。实际上,最好将新的“文件嵌套”功能视为文件的替代方案。Exclude,或作为files.exclude的补充特性。没有必要深入探讨如何使用资源管理器。filenestest是另一种选择,所以让我们来谈谈它对files.exclude的补充。

有几种方法可以使用这两个设置来配置项目的“文件资源管理器”(侧栏中的文件树)。这两个浏览器我都用。fileniting &“files.exclude”。我嵌套了一些明显有共同之处的文件组。官方文档中给出的文件嵌套特性的一个常见示例是使用文件嵌套来隐藏包锁。Json文件在你的包。Json文件,这显然是一个伟大的方式,利用文件嵌套。

然而,我更进一步:我还隐藏了我的.npmrc文件,如果我正在编写一个NPM-Package,我也隐藏了我的.npmignore文件和包文件。

下面是我创建的两个组

包.json package-lock.json .npmignore .npmrc eslintrc.json .eslintignore .prettierrc .markdownlintrc

问题在于文件嵌套,你会得到一堆1-offs,比如.editorconfig(是的,我可以把它放在我的.eslintrc.json组中,但它并不适合他们的。gitignore呢?我想我可以把gitignore留在视野里。

或者我可以用文件。排除并配置我的“文件”。排除":{}对象在我的项目的.vscode/设置。json文件隐藏文件,如.gitignore, LICENSE, .editorconfig等…

我也可以用它来隐藏目录,这是文件嵌套无法做到的。我用它来隐藏我的“build”目录和“node_modules”目录。

默认情况下,文件。Exclude隐藏了项目的.git/目录,这就是为什么您永远看不到它的原因。

以下是我用于ESM NodeJS TypeScript项目的默认配置,这是我的大多数项目。配置是通用的,并且在不同的项目中有所变化。

  "files.exclude": {
    // -------- PROJECT DIRECTORIES --------
    "**/.git/": true,
    "node_modules/": true,
    "out/": true,
    "typings/": true,

    // ------- PROJECT FILES -------
    "LICENSE": true,
    "README.md": true
  },

  "explorer.fileNesting.patterns": {
    "*.ts": "${capture}.js",
    "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts",
    "*.jsx": "${capture}.js",
    "*.tsx": "${capture}.ts",
    ".eslintrc.*": ".eslintignore, .editorconfig, .prettierrc",
    "tsconfig.json": "tsconfig.*.json, package.json, .gitignore",
  },



在文件嵌套的新设置中编辑后,我编辑了一些最新的功能,是新的…

GitIgnore排除特性

这个特性允许你配置VS Code来处理你的.gitignore文件中的条目,就像它们包含在你的文件中一样。排除对象。这意味着文件资源管理器实际解析您的.gitignore文件,并读取其内容,然后隐藏您配置它的文件。

要将设置配置为on,请使用explorer.excludeGitIgnore。

记住,这个设置和其他两个特征一样,不应该从一个角度来考虑,

"GitIgnore排除"比"Files排除"好吗? "

以这种方式思考是没有帮助的,而且会适得其反。Git排除(如发布说明所说)…

...与文件一起工作。exclude从资源管理器中隐藏不需要的文件。 ~ VS代码发布说明v1.68


你可以阅读更多关于GitIgnore排除在这里




打开设置,搜索文件。排除,然后点击添加模式,然后它会给一个通知 无法写入用户设置。请打开用户设置以纠正其中的错误/警告,然后重试。 现在打开设置。Json文件和搜索文件。Exclude{}块和include "**/*.exe": true这里我使用。exe作为例子,而不是使用任何你想阻止的扩展名。 我希望这能有所帮助。