【问题标题】:VS Code search.exclude doesn't workVS Code search.exclude 不起作用
【发布时间】:2018-02-04 07:27:45
【问题描述】:

我无法使search.exclude 设置起作用,因此它排除了build 文件夹。

截图如下:

【问题讨论】:

  • 嗯,很有趣 - 我可以重现它,但是.. 现在总是这样。似乎它可能与在创建 build 目录之前打开 VSCode 有关?无论如何,#24677 似乎是相关的。

标签: ide visual-studio-code


【解决方案1】:

以防万一这对其他人有所帮助,这里列出了可能会影响您的文件/搜索排除设置是否按预期工作的因素。

  • 仔细检查您是否使用了正确的模式;你可以看到 VS Code 支持哪些模式 here。一个common problem 是不要在要排除的扩展名之前添加*,例如**/.min.js 将排除所有名为“.min.js”的文件,而**/*.min.js 将排除所有“.min.js”结尾的文件。
  • 确保“使用排除设置和忽略文件”齿轮已打开(它在“要排除的文件”字段旁边;如果您没有看到它,请单击“替换”下的小“...” “ 场地)。打开它会排除你的search.exclude 设置中的任何模式在任何.gitignore 文件中定义的模式。这只会影响您的排除设置是否将应用于您的搜索;您放入“要排除的文件”输入字段的任何模式都将始终被应用。
  • 如果您不想排除 .gitignore 模式,请将 search.useIgnoreFiles 设置为 false(默认为 true)。如果在某些 .gitignore 文件中排除了某个模式并且 search.useIgnoreFiles 为 true,即使您将该模式添加到您的 search.exclude 并将其设置为 false,它仍然会被忽略 (see this issue)。
  • files.exclude 中的任何模式都将automatically be excluded from search results,而不仅仅是来自文件资源管理器。
  • 即使您创建自己的files.excludesearch.exclude 设置字段,也会排除所有默认模式。要覆盖默认排除模式,您必须将每个默认模式复制到用户定义的设置中并将它们设置为 false,例如"search.exclude": {"**/node_modules": false, "**/bower_components": false}
  • 正如接受的答案所述,任何当前打开的文件都将始终包含在结果中,即使它们已被排除在您的设置中。
  • 截至目前,VS Code 不支持negated glob exclusions,因此如果您的search.exclude 具有类似{"**/*": true, "**/myfolder": false} 的模式,“myfolder”中的文件将不会包含在您的结果中。相反,您必须详尽列出要排除的所有文件夹。
  • 用户设置中的任何设置都将全局应用,而工作区设置仅适用于当前工作区,因此请确保将设置放在所需的部分中。

如果您仍然遇到问题,您可以通过将日志级别设置为跟踪并在执行搜索时读取输出来查看 VS Code 排除了哪些文件夹 (see here for more instructions)。

【讨论】:

  • 哇,这对我来说是“使用排除设置并忽略文件”齿轮图标。不直观。
  • 是否也可以将"Use Exclude Settings and Ignore Files" 选项应用于files.exclude?似乎它只适用于search.exclude :(
  • 多么糟糕的设计(隐藏的齿轮开关),显然已经 3 年没有修复了。感谢您的精彩总结。
【解决方案2】:

这看起来像这样的错误:https://github.com/Microsoft/vscode/issues/31819 - search.exclude 不适用于打开的文件。

【讨论】:

    【解决方案3】:

    似乎 search.useRipgrep 忽略了排除设置。对我来说,当我禁用 search.useRipgrep 时,排除开始工作。

    我的环境:Windows 10; VSC 安装在用户目录中(按照上次更新的建议)。

    【讨论】:

      【解决方案4】:

      **/build 对我不起作用。相反,我使用 build/** 并且它有效。

      【讨论】:

      • 这是对其他答案之一的评论吗?你指的是什么?
      • 这是关于如何解决问题的答案。 OP 想忽略build 文件夹,我可以看到他们使用了**/build,但他们需要使用build/**。我将把我的答案重命名为 dist -> build 以便更清楚。
      猜你喜欢
      • 2018-04-01
      • 2017-12-18
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 2021-08-17
      • 2020-09-26
      • 2022-01-13
      相关资源
      最近更新 更多