如何在搜索过程中选择要忽略的文件夹?

J. *_*son 323 visual-studio-code

现在,当我.js用来搜索文件时,模糊匹配似乎对当前项目中的所有文件都有效.不幸的是,这包括一些不完全明显的构建和供应商目录.因此,例如,如果我想从所有javascript文件中搜索并执行.js文件和符号结果包括大约1500次点击...除了其中两个是完整的噪音.

有没有办法为搜索目的指定要忽略的某些目录?

小智 617

自@ alex-dima的答案以来,这些偏好似乎已经改变.

更改设置

从菜单中选择:首选项 - >设置 - >用户/工作区设置.过滤默认设置为search.

您可以修改search.exclude设置(从默认设置复制到用户或工作区设置).这仅适用于搜索.请注意,files.exclude将自动应用设置.

如果设置不起作用:

  1. 确保你不要关闭搜索排除.在搜索区域中,展开"要排除的文件"输入框,并确保选中齿轮图标.

  2. 您可能还需要清除编辑器历史记录(请参阅:https://github.com/Microsoft/vscode/issues/6502).

示例设置

例如,我正在开发一个EmberJS应用程序,它可以在tmp目录下保存数千个文件.

如果您WORKSPACE SETTINGS在搜索字段的右侧选择,则搜索排除将仅应用于此特定项目.并将相应的.vscode文件夹添加到包含的根文件夹中settings.json.

这是我的示例设置:

{
    // ...
    "search.exclude": {
        "**/.git": true,
        "**/node_modules": true,
        "**/bower_components": true,
        "**/tmp": true
    },
    // ...
}
Run Code Online (Sandbox Code Playgroud)

注意:在任何搜索排除的开头添加**以覆盖任何文件夹和子文件夹上的搜索词.

更新设置前的搜索图片:

在更新设置之前,搜索结果很糟糕.

更新设置前的搜索图片

更新设置后的搜索图片:

更新设置后,搜索结果正是我想要的.

更新设置后的搜索图片.

  • 请注意,搜索文件时可以关闭搜索排除功能.在搜索区域中,展开"要排除的文件"输入框,并确保选中齿轮图标.这样可以确保您的搜索排除设置得到兑现. (17认同)
  • 在最近的版本中,这已经停止为我工作......任何想法为什么? (12认同)
  • 确保清除编辑器历史记录以使其正常工作.https://github.com/Microsoft/vscode/issues/6502 (6认同)
  • 有没有办法使这适用于"快速打开"功能?PC上为Ctrl + P,Mac上为Cmd + P. 当我使用此功能搜索文件时,它们仍会显示. (3认同)
  • 我必须运行命令"清除编辑器历史记录"(请参阅​​此处:https://github.com/Microsoft/vscode/issues/6502#issuecomment-273697138)并重新启动VS Code以便为我工作. (3认同)
  • “要排除的文件”中的齿轮图标非常微妙-至少在我当前的主题中,很难确定它是否被选中。超级不明显! (2认同)

atr*_*eon 141

确保选中"使用排除设置和忽略文件"的齿轮 在此输入图像描述

  • @WouterVanherck您只需添加逗号即可分隔要排除的每个文件或文件夹.示例:`./ src/public /,src/components /` (12认同)
  • 一个人如何排除多个文件夹? (3认同)

Chr*_*igg 37

2018年4月更新

您可以在vscode的搜索部分中通过将感叹号预先修复到要排除的每个文件夹或文件来执行此操作.

在此输入图像描述


小智 24

这个答案已经过时了

如果这些是您要在某个工作区中忽略的文件夹,则可以转到:

AppMenu > Preferences > Workspace Settings

否则,如果您希望在所有工作区中忽略这些文件夹,请转到:

AppMenu > Preferences > User Settings

并将以下内容添加到您的配置中:

//-------- Search configuration --------

// The folders to exclude when doing a full text search in the workspace.
"search.excludeFolders": [
    ".git",
    "node_modules",
    "bower_components",
    "path/to/other/folder/to/exclude"
],
Run Code Online (Sandbox Code Playgroud)

工作空间和用户设置之间的区别在自定义文档中进行了说明

  • 如果它已过时,请更新它,或删除它以避免混淆和可能的downvotes! (8认同)
  • 截至 2022 年 7 月 20 日,这是正确的答案 /sf/answers/3825263781/ (3认同)
  • 说真的,进行编辑。上述接受的答案适用于 macOS 上最新的 VS Code。因此,放弃您的 BS 以获得赞成票,并为实际答案做出有用的贡献。 (2认同)

小智 21

您好,您需要找到设置并为历史文件添加新的排除模式

VSC 截图


dav*_*ler 18

在您的 vscode 项目中创建此文件

.vscode/settings.json

{
  "search.exclude": {
    "**/Pods": true,
    "**/node_modules": true,
    "**/*.code-search": true
  }
}
Run Code Online (Sandbox Code Playgroud)


Nah*_*nde 16

如果我理解正确,你想从vscode模糊查找器中排除文件.如果是这种情况,我猜测上面的答案是针对旧版本的vscode.对我有用的是添加:

"files.exclude": {
    "**/directory-you-want-to-exclude": true,
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true
}
Run Code Online (Sandbox Code Playgroud)

我的settings.json.此文件可以通过打开File> Preferences>Settings

  • 仅供参考,这**也**从资源管理器窗口中排除这些文件,而不仅仅是搜索 (4认同)

小智 11

我将其添加到 settings.json

    "search.exclude": {
      "**/node_modules/**": true,
    }
Run Code Online (Sandbox Code Playgroud)

需要后在设置面板中启用它

在此输入图像描述


dom*_*mih 8

简短的答案是在“要排除的文件”中用逗号分隔要忽略的文件夹。

  1. 开始工作区范围搜索:CTRL+SHIFT+f
  2. 使用三点按钮扩展全局搜索
  3. 输入您的搜索词
  4. 例如,在要排除的文件-input 字段中写入babel,concat以排除搜索中的文件夹“babel”和文件夹“concat”(确保排除按钮已启用)。
  5. 按 Enter 键即可获取结果。


Pan*_*nts 7

我是个白痴,花了我一段时间才意识到这一点,但请确保在全局搜索中单击了Gear图标,以便可以应用您的设置。

单击搜索上的Visual Studio代码齿轮图标

  • 你不是白痴,因为这是为我解决了这个问题的答案,我过去肯定不小心点击了那个图标,这个小图标控制它的效果并不明显,并且在启用或禁用它时几乎察觉不到 (4认同)
  • 你当然不是一个错过了那段美妙的用户体验的白痴,但是你能告诉我你的用户体验与[这个之前的答案](/sf/answers/3419303821/)有什么不同,如果它是 - - 好吧,除了这个答案处于黑暗模式之外?;^D (3认同)
  • 为什么这个按钮是一个东西?我在哪个宇宙中设置全局设置,然后想通过令人困惑的按钮关闭这些全局设置? (3认同)
  • 哈!已经有 22 个人同意了,而且还在增加,所以我该跟谁争论呢?至少我没有错过任何明显的事情;谢谢。 (2认同)

wp7*_*8de 7

由于之前没有提到,一些用户想知道如何在临时搜索中(暂时)排除多个文件或文件夹:

\n

您可以使用逗号分隔的简化通配模式列表从搜索中排除多个文件和文件夹(如VS Code 的 glob.ts源代码中所述:

\n
/**\n * Simplified glob matching. Supports a subset of glob patterns:\n * * `*` to match one or more characters in a path segment\n * * `?` to match on one character in a path segment\n * * `**` to match any number of path segments, including none\n * * `{}` to group conditions (e.g. *.{ts,js} matches all TypeScript and JavaScript files)\n * * `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, \xe2\x80\xa6)\n * * `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)\n */\n
Run Code Online (Sandbox Code Playgroud)\n

并且不要忘记激活“搜索详细信息”面板上的( \xe2\x9a\x99- ) 使用排除设置和忽略的文件按钮( ... )(遵循 Shotty 的解释)。

\n

在此输入图像描述

\n


Bru*_*nes 5

设置前面答案中提到的 search.exclude 和 file.exclude 后,运行命令“清除编辑器历史记录”(使用命令面板执行此操作 - CTRL + SHIFT + P)。

只有在此之后,排除的文件才不会出现在您的快速打开菜单中。

更新:您也可以运行命令“清除命令历史记录”。我忘了那件事了。


LSt*_*rky 5

我想完全排除 1 个工作区文件夹,但发现这很困难,因为无论排除模式如何,它总是对每个工作区文件夹运行搜索。

最后,解决方案是添加**到文件夹设置搜索排除模式。

在此处输入图片说明