如何从Visual Studio Code中的侧边栏隐藏某些文件?

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

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

340589 次浏览

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

  1. 打开VS用户设置(主菜单:File > Preferences > Settings)。这将打开设置屏幕。
  2. 在顶部的搜索中搜索files:exclude
  3. 根据需要使用新的全局模式配置用户设置。在这种情况下,添加此模式node_modules/,然后单击确定。模式语法非常强大。您可以在Search Across Files主题下找到模式匹配的详细信息

完成后,它应该看起来像这样:输入图片描述

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

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

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

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

您还可以更改工作区设置(主菜单:File > Preferences > Workspace Settings)。工作区设置将在您当前的工作区中创建一个.vscode/settings.json文件,并且仅应用于该工作区。用户设置将全局应用于您打开的任何VS Code实例,但如果存在,它们不会覆盖工作区设置。阅读有关自定义用户和工作区设置的更多信息。

有时您只想隐藏特定项目的某些文件类型。在这种情况下,您可以在项目文件夹中创建一个名为.vscode的文件夹,并在其中创建settings.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扩展名窥视,它允许您切换项目中排除的文件的隐藏settings.json.

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

ext install [enter] peep [enter]

您可以将“extension.peep切换”绑定到Ctrl+Shift+P等键(默认情况下与F1相同)以便于切换。按Ctrl+KCtrl+S键绑定,输入peep,选择窥视切换并添加您的绑定。

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

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

这会捕获所有文件夹和子文件夹,除了foo.meta之外,还会选择foo.cs.meta

使隐藏”扩展效果很好!

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

如果您正在使用角2+应用程序,并且像我一样喜欢干净的工作环境,请按照@omt66回答并将以下内容粘贴到您的settings.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文件。要从资源管理器视图中隐藏这些文件,我们需要编辑VSCode的settings.json。添加文件夹和文件,如下所示:

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

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

最简单的方法是通过按F1并从弹出窗口中选择Preferences: Open Workspace Settings来更改您的工作区设置。之后滚动到Files: Exclude行并在列表中添加标签-**/*.class,现在. class文件将不会显示在Vscode项目文件资源管理器中。

您可以使用标签**/*.exe执行相同的方法来删除. exe文件对于C&C++文件。

谢了

manpreetsingh

如果您使用VSCode:

  • 文件>首选项>设置
  • 搜索:

files:exclude

  • 然后添加

**/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新文件资源管理器功能

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

这个答案涵盖

  1. "explorer.fileNesting"(新截至2022年4

  2. "files.exclude"

  3. explorer.excludeGitIgnore(2022年6月新增)

文件排除

所以这篇文章中包含的最佳答案,最初是"files.exclude"




VS Code的文件嵌套功能

因为“文件嵌套”是最近版本中添加到VS Code中最酷的功能之一,所以我想我会花时间创建一个GIF动画图片来展示它是如何实时工作的。

下面是一个.gif图像,显示了实时使用的explorer.fileNesting功能

隐藏VS代码文件嵌套功能中的文件

文件嵌套非常酷,需要注意的是,与大多数VS Code功能一样,它确实需要为您的个人开发环境自定义配置。

  • 就我个人而言,我发现这是对工作区范围settings.json配置文件的一个很好的补充。除非你只使用VS Code开发相同类型的项目,使用相同的项目模板,一遍又一遍(我理解有些人这样做),否则我建议使用它来配置每个单独的项目。

  • 另一种选择是每种语言配置。我不这样使用它,但它对TypeScript的tsc排放非常有帮助。例如#0文件和#1文件,它们可以配置为始终嵌套到*.js文件中,具有相同的名称。或者*.js文件可以配置为嵌套在*.ts文件下。

上面的两个注释指出,这是一个旨在改善编译语言环境的功能,这些编译语言具有发出项目构建文件的编译器;特别是"转译器",就像TypeScript一样,换句话说,

下面显示了一个“文件嵌套”配置,您可能会发现它被写入属于TypeScript项目的"./.vscode/settings.json"文件。
    "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代码文件嵌套功能"的官方发行说明(早期留档)的链接。

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

    • 控制是否启用文件嵌套。它可以全局设置,也可以针对特定工作区设置。
  2. #0

    • 控制默认情况下是否展开嵌套文件。
  3. #0

    • 控制文件的嵌套方式。默认配置为TypeScript和JavaScript项目提供嵌套智能,但鼓励您修改它以适应您自己的项目结构。一些例子:





文件排除


注:“文件不包括在内,已被其他答案覆盖,所以我会简短。”
“重要的是我们覆盖files.exclude,因为下一个功能建立在它之上。

文件嵌套很棒,但不要排除#0暂时.将explorer.fileNestingfiles.exclude等功能进行比较并没有太大帮助。实际上最好将新的“文件嵌套”功能视为files.exclude的替代功能,或者作为files.exclude的补充功能。没有必要深入讨论使用explorer.fileNesting作为替代功能,所以让我们谈谈它对files.exclude的补充。

有几种方法可以使用这两种设置来配置您的项目"文件浏览器"(侧栏中的文件树)。我同时使用explorer.file嵌套和"files.exclude"。我嵌套某些显然共享某些共同点的文件组。文件嵌套功能的官方文档中给出的一个常见示例是使用文件嵌套将package-lock.json文件隐藏在package.json文件下,这显然是利用文件嵌套的好方法。

但是我更进一步:我还隐藏了我的. npmrc文件,如果我正在编写NPM-Package,我也会将我的. npmignore文件与包文件一起隐藏。

这是我创建的两个组
  • package.json

    • package-lock.json
    • .npmignore
    • .npmrc
  • eslintrc.json

    • .eslintignore
    • .prettierrc
    • .markdownlintrc

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

或者我可以使用#0,并在项目的.vscode/settings.json文件中配置我的"files.exclude": {}对象以隐藏.gitignoreLICENSE.editorconfig等文件…

我也可以用它来隐藏目录这是文件嵌套不能做的事情。我用它来隐藏我的“构建”目录和“node_modules”目录。

默认情况下,files.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文件中的条目,就好像它们包含在files.exclude对象中一样。这意味着文件资源管理器实际上解析您的. gitignore文件,并读取其内容,然后隐藏您配置的文件。

要将设置配置为on useexplorer.excludeGitIgnore

请记住,此设置与其他两个功能一样,不应该从以下角度考虑,

“GitIgnore排除”比“文件排除”更好吗?

以这种方式思考是无益的,而且适得其反。Git排除(正如发行说明所说)…

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




打开设置并搜索Files.Exclude,然后单击add pattern,然后它会发出通知Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again.现在打开settings.json文件并搜索files.exclude{}块并包含"**/*.exe": true在这里我使用. exe作为示例,而不是使用任何你想阻止的扩展。希望对你有帮助