在VS Code中选择搜索时要忽略的文件夹

现在,当我使用+O来搜索文件时,模糊匹配似乎对当前项目中的所有文件进行了操作。不幸的是,这包括许多来自构建和供应商目录的文件。因此,例如,如果我想搜索所有的JavaScript文件,并执行+O并输入.js,文件和符号结果包括大约1500个命中结果,除了这两个之外,其余都是完全噪音。

是否有一种方法可以指定某些目录以忽略搜索的目的?

272567 次浏览

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

# EYZ0

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

# EYZ0

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

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

工作空间和用户设置之间的差异被解释为在设置文档中

临时除外

在搜索函数中,单击省略号以显示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
},
// ...
}

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

# EYZ0:

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

搜索前更新设置的图片

更新设置后搜索图片:

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

更新设置后搜索的图片。 < / >

如果我理解正确的话,你想要从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打开

在设置搜索之后。排除并归档。排除前面的答案中提到的,运行命令“清除编辑器历史记录”(使用命令面板来做- CTRL + SHIFT + P)。

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

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

确保“使用排除设置和忽略文件”cog被选中 # EYZ0 < / p >

2018年4月更新

您可以在vscode的搜索部分通过在您想要排除的每个文件夹或文件前添加感叹号来实现这一点。

enter image description here

创建一个文件。gitignore &把你想要忽略的文件夹或文件名放上去。

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

echo node_modules/ > .gitignore

忘记上面的vscode排除搜索模式,尝试下面的模式,它是工作在vscode上一个版本的任何文件夹!

!../../../ 地区/ *

为例,我已经搜索如下 # EYZ0 < / p >

文件包含: * . js < / >强

文件排除: * * / node_modules ,!../../../ 地区/ # EYZ0 ! . . / . . /管理/客户/ * < /强> < / p >

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

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

enter image description here

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

文件夹设置选项卡 .

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

Visual Studio Code Gear Icon on Search clicked .

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

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

从子文件夹中排除所有内容如下所示(2019版)

包括

./db

排除

./db/*

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

我只是想快速地做一次这个搜索,所以我不想改变我的环境的搜索设置。下面是我是怎么做的(注意文件夹的两个星号):

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

这是它的样子

扩展投票最多的答案,现在有一个扩展来实现这里描述的以GUI方式快速切换。它叫探险家排除。你可以用下面的命令来安装:

ext install PeterSchmalfeldt.explorer-exclude

演示:

enter image description here

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

VSC截图

我相信现在必须解决这个问题,但我只是想贡献我的解决方案,这对某些人来说可能很简单,也很有用。

只需在搜索的exclude field中键入下面的行

# EYZ0

不需要在你的工作区/VS Code的设置文件中设置任何东西。

在vscode项目中创建这个文件

# EYZ0

{
"search.exclude": {
"**/Pods": true,
"**/node_modules": true,
"**/*.code-search": true
}
}

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

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

/**
* Simplified glob matching. Supports a subset of glob patterns:
* * `*` to match one or more characters in a path segment
* * `?` to match on one character in a path segment
* * `**` to match any number of path segments, including none
* * `{}` to group conditions (e.g. *.{ts,js} matches all TypeScript and JavaScript files)
* * `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
* * `[!...]` 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`)
*/

不要忘记激活搜索细节面板上的(< em >⚙- < / em >) 使用排除设置和忽略文件按钮(< em >…< / em >)(按照Shotty的解释)。

enter image description here