542

现在当我使用⌘</kbd>+O to search for files, the fuzzy matching appears to operate over all files in the current project. Unfortunately, this includes a number of files from build and vendor directories. So, for instance, if I want to search for all JavaScript files and do ⌘</kbd>+O and type .js in, the file and symbol results include around 1500 hits and all of them except the two ones are complete noise.

有没有办法指定某些目录被忽略以进行搜索?

4

18 回答 18

986

临时排除

在搜索功能中,单击省略号以显示files to includefiles to exclude文本框。输入要排除的任何文件和文件夹(以逗号分隔)。

通过将文件/文件夹输入到要排除的文件文本框中临时排除文件/文件夹的图片。

持续排除

从菜单中选择File ➡️ Preferences ➡️ Settings ➡️ User/Workspace Settings并将默认设置过滤为search.

  • User设置将应用于所有工作区
  • Workspace设置将仅应用于此工作区

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

切换搜索排除

files to exclude在使用文本框中的齿轮图标进行搜索时,您可以(有时不小心)切换是否启用或禁用了这些排除项。单击省略号,然后单击齿轮图标进行切换。

搜索字段中的切换说明图片。

有关在 Visual Studio Code 中配置设置的其他文档

如果设置不起作用

您可能还需要清除编辑器历史记录(请参阅: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
    },
    // ...
}

注意:在任何搜索排除的开头包含一个 **,以涵盖任何文件夹和子文件夹中的搜索词。

更新设置前的搜索图片

在更新设置之前,搜索结果是一团糟。

更新设置前的搜索图片

更新设置后的搜索图:

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

更新设置后的搜索图片。

于 2015-10-29T15:40:34.917 回答
211

确保选择了“使用排除设置和忽略文件”齿轮 在此处输入图像描述

于 2018-02-18T00:12:52.340 回答
61

2018 年 4 月更新

您可以在 vscode 的搜索部分中执行此操作,方法是在要排除的每个文件夹或文件前加上感叹号。

在此处输入图像描述

于 2018-04-24T04:29:33.883 回答
32

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

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

于 2019-06-14T16:58:10.687 回答
26

这个答案已经过时了

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

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"
],

自定义文档中解释了工作区和用户设置之间的区别

于 2015-04-30T16:08:06.240 回答
22

如果我理解正确,您想从 vscode 模糊查找器中排除文件。如果是这样的话,我猜上面的答案是针对旧版本的 vscode 的。对我有用的是添加:

"files.exclude": {
    "**/directory-you-want-to-exclude": true,
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true
}

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

于 2017-07-04T10:03:09.887 回答
6

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

VSC 截图

于 2020-08-12T13:47:44.217 回答
5

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

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

在此处输入图像描述

于 2019-04-26T14:13:17.413 回答
5

在你的 vscode 项目中创建这个文件

.vscode/settings.json

{
  "search.exclude": {
    "**/Pods": true,
    "**/node_modules": true,
    "**/*.code-search": true
  }
}
于 2021-10-18T15:00:14.493 回答
4

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

  1. 开始工作区范围搜索:CTRL+SHIFT+f
  2. 使用三点按钮展开全局搜索
  3. 输入您的搜索词
  4. 例如,在要排除的文件-输入字段中写入babel,concat以排除搜索中的文件夹“babel”和文件夹“concat”(确保启用了排除按钮)。
  5. 按回车键得到结果。
于 2019-07-30T12:48:07.983 回答
3

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

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

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

于 2017-11-17T15:33:08.927 回答
2

忘记上面的 vscode 排除搜索模式,尝试下面的模式,它适用于 vscode 最新版本中的任何文件夹!

!../../../locales/*

例如,我搜索了如下 vscode 示例包含设置

要包含的文件: *.js

要排除的文件:**/node_modules,!../../../locales/,!../../../theme/,!../../ admin /client/*

于 2018-09-07T23:06:58.737 回答
1

如果您的工作区中有多个文件夹,请search.exclude在每个文件夹上设置。旁边有一个下拉菜单WORKSPACE SETTINGS

文件夹设置选项卡

于 2019-05-23T15:07:05.417 回答
1

像这样从子文件夹中排除所有作品(2019 版)

包括

./db

排除

./db/*
于 2019-10-23T11:33:42.370 回答
1

扩展投票最多的答案,现在有一个扩展来实现那里描述的以 GUI 方式快速切换的内容。它被称为Explorer 排除。您可以使用以下命令安装它:

ext install RedVanWorkshop.explorer-exclude-vscode-extension

演示:

在此处输入图像描述

于 2020-07-02T14:31:30.063 回答
1

我确信它现在必须解决,但我只想贡献我的解决方案,这对某人来说可能很容易和有用。

只需在exclude field搜索的下面输入

*/node_modules/*

无需在工作区/VS Code 的设置文件中设置任何内容。

于 2021-04-29T08:55:49.810 回答
-1

我想在所有文件中搜索术语“Stripe”,除了插件(“plugin”文件夹)或以“.bak”、“.bak2”或“.log”结尾的文件(这是在 wp -wordpress 安装的内容文件夹结构)。

我只想快速地进行一次搜索,所以我不想改变我的环境的搜索设置。这是我的做法(注意文件夹的双星号):

  • 搜索词:条纹
  • 包含文件:{空白}
  • 排除文件:*.bak*、*.log、**/plugins/**

这是它的样子

于 2020-01-23T18:18:44.983 回答
-3

使用 .gitignore 创建一个文件并输入您要忽略的文件夹或文件名。

忽略 node_modules 文件夹下的所有内容

echo node_modules/ > .gitignore 
于 2018-06-04T18:43:19.843 回答