选择在 VS Code 中搜索时要忽略的文件夹
Choose folders to be ignored during search in VS Code
现在用⌘+O搜索文件时,模糊匹配好像是对当前目录下的所有文件进行操作项目。不幸的是,这包括来自 build 和 vendor 目录的许多文件。因此,例如,如果我想搜索所有 JavaScript 文件并执行 ⌘+O 并键入 .js
中,文件和符号结果包括大约 1500 个命中,除了两个之外的所有命中都是完全噪声。
有没有一种方法可以指定为了搜索而忽略某些目录?
如果这些是您要在某个工作区中忽略的文件夹,您可以转到:
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"
],
解释了工作区和用户设置之间的区别in the customization docs
临时排除
在搜索功能中,单击省略号以显示 files to include
和 files to exclude
文本框。输入要排除的任何文件和文件夹(以逗号分隔)。
永久排除
从菜单中选择 File ➡️ Preferences ➡️ Settings ➡️ User/Workspace Settings
并将默认设置过滤为 search
。
User
设置将应用于所有工作区
Workspace
设置将仅应用于此工作区
您可以修改 search.exclude
设置(从默认设置复制到您的用户或工作区设置)。这将仅适用于搜索。请注意,files.exclude
中的设置将自动应用。
切换搜索排除项
在使用 files to exclude
文本框中的齿轮图标进行搜索时,您可以(有时不小心)切换是否启用或禁用这些排除项。单击省略号,然后单击齿轮图标进行切换。
Additional documentation on configuring settings in Visual Studio Code
如果设置不起作用
您可能还需要清除编辑器历史记录(参见:https://github.com/Microsoft/vscode/issues/6502)。
示例
我正在开发一个 EmberJS 应用程序,它在 tmp
目录下保存了数千个文件。
如果您 select WORKSPACE SETTINGS
在搜索字段的右侧,搜索排除将仅应用于该特定项目。并且相应的 .vscode
文件夹将添加到包含 settings.json
.
的根文件夹中
这是我的示例设置:
{
// ...
"search.exclude": {
"**/.git": true,
"**/node_modules": true,
"**/bower_components": true,
"**/tmp": true
},
// ...
}
注意:在任何搜索排除的开头包含一个 ** 以覆盖任何文件夹和子文件夹的搜索词。
更新设置前的搜索图片:
在更新设置之前,搜索结果一团糟。
更新设置后搜索图片:
更新设置后,搜索结果正是我想要的。
如果我理解正确,你想从 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
打开
在您设置了前面答案中提到的 search.exclude 和 file.exclude 之后,运行 命令 "Clear Editor History"(使用命令面板来执行此操作 - CTRL + SHIFT + P).
只有这样,排除的文件才会出现在您的快速打开菜单中。
更新:您也可以 运行 命令 "Clear Command History"。我忘记了。
确保选择了 'Use Exclude Settings and Ignore Files' 齿轮
2018 年 4 月更新
您可以在 vscode 的搜索部分执行此操作,方法是在要排除的每个文件夹或文件前加上感叹号。
使用 .gitignore 创建一个文件,并输入要忽略的文件夹或文件名。
忽略 node_modules 文件夹下的所有内容
echo node_modules/ > .gitignore
忘记上面的 vscode 排除搜索模式,尝试低于它适用于 vscode 最新版本中任何文件夹的模式!
!../../../locales/*
例如我搜索如下
vscode example clude settings
要包含的文件:
*.js
要排除的文件:
**/node_modules,!../../../locales/,!../../../theme/,!../. ./admin/client/*
我想完全排除 1 个 Workspace 文件夹,但发现这很困难,因为无论排除模式如何,它总是在每个 Workspace 文件夹上运行搜索。
最终,解决方案是将 **
添加到 文件夹设置 搜索排除模式。
如果您的工作区中有多个文件夹,请在每个文件夹上设置 search.exclude
。 WORKSPACE SETTINGS
旁边有一个 drop-down。
Folder Settings Tab
我是个白痴所以我花了一段时间才意识到这一点,但请确保在全局搜索中单击 Gear 图标以便应用您的设置。
简短的回答是 用逗号分隔 "files to exclude" 中要忽略的文件夹。
- 开始工作区范围搜索:CTRL+SHIFT+f
- 使用三点按钮展开全局搜索
- 输入您的搜索词
- 例如,在要排除的文件-输入字段中写入
babel,concat
以排除文件夹"babel"和文件夹"concat"在搜索中(确保排除按钮已启用)。
- 按回车键获取结果。
像这样从子文件夹中排除所有内容(2019 版)
包括
./db
排除
./db/*
我想在除插件("plugin" 文件夹)或以“.bak”、“.bak2”或“结尾的文件之外的所有文件中搜索术语 "Stripe" .log”(这是在 wordpress 安装的 wp-contents 文件夹结构中)。
我只想快速搜索一次,所以不想更改环境的搜索设置。这是我的操作方法(注意文件夹的双星号):
- 搜索词:条纹
- 包含文件:{空白}
- 排除文件:*.bak*、*.log、**/plugins/**
Here's what it looked like
扩展 , now there is an extension to achieve what is described there to toggle quickly in a GUI way. It's called Explorer Exclude。您可以使用以下命令安装它:
ext install RedVanWorkshop.explorer-exclude-vscode-extension
演示:
您好,您需要找到设置并为历史文件添加新的排除模式
我确信它现在必须得到解决,但我也只是想贡献我的解决方案,这对某些人来说可能既简单又有用。
只需在搜索 exclude field
的下一行输入
*/node_modules/*
无需在 workspace/VS 代码的设置文件中进行任何设置。
在您的 vscode 项目中创建此文件
.vscode/settings.json
{
"search.exclude": {
"**/Pods": true,
"**/node_modules": true,
"**/*.code-search": true
}
}
由于之前没有提到,一些用户想知道如何在 ad-hoc 搜索中(暂时)排除多个文件或文件夹:
您可以使用 comma-separated 简化 列表从搜索中排除多个文件和文件夹通配模式 (如 VS Code's 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`)
*/
并且不要忘记激活 (⚙-) 使用排除设置和忽略文件 按钮在“搜索详细信息”面板上 (...)(遵循 Shotty 的解释)。
现在用⌘+O搜索文件时,模糊匹配好像是对当前目录下的所有文件进行操作项目。不幸的是,这包括来自 build 和 vendor 目录的许多文件。因此,例如,如果我想搜索所有 JavaScript 文件并执行 ⌘+O 并键入 .js
中,文件和符号结果包括大约 1500 个命中,除了两个之外的所有命中都是完全噪声。
有没有一种方法可以指定为了搜索而忽略某些目录?
如果这些是您要在某个工作区中忽略的文件夹,您可以转到:
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"
],
解释了工作区和用户设置之间的区别in the customization docs
临时排除
在搜索功能中,单击省略号以显示 files to include
和 files to exclude
文本框。输入要排除的任何文件和文件夹(以逗号分隔)。
永久排除
从菜单中选择 File ➡️ Preferences ➡️ Settings ➡️ User/Workspace Settings
并将默认设置过滤为 search
。
User
设置将应用于所有工作区Workspace
设置将仅应用于此工作区
您可以修改 search.exclude
设置(从默认设置复制到您的用户或工作区设置)。这将仅适用于搜索。请注意,files.exclude
中的设置将自动应用。
切换搜索排除项
在使用 files to exclude
文本框中的齿轮图标进行搜索时,您可以(有时不小心)切换是否启用或禁用这些排除项。单击省略号,然后单击齿轮图标进行切换。
Additional documentation on configuring settings in Visual Studio Code
如果设置不起作用
您可能还需要清除编辑器历史记录(参见:https://github.com/Microsoft/vscode/issues/6502)。
示例
我正在开发一个 EmberJS 应用程序,它在 tmp
目录下保存了数千个文件。
如果您 select WORKSPACE SETTINGS
在搜索字段的右侧,搜索排除将仅应用于该特定项目。并且相应的 .vscode
文件夹将添加到包含 settings.json
.
这是我的示例设置:
{
// ...
"search.exclude": {
"**/.git": true,
"**/node_modules": true,
"**/bower_components": true,
"**/tmp": true
},
// ...
}
注意:在任何搜索排除的开头包含一个 ** 以覆盖任何文件夹和子文件夹的搜索词。
更新设置前的搜索图片:
在更新设置之前,搜索结果一团糟。
更新设置后搜索图片:
更新设置后,搜索结果正是我想要的。
如果我理解正确,你想从 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
在您设置了前面答案中提到的 search.exclude 和 file.exclude 之后,运行 命令 "Clear Editor History"(使用命令面板来执行此操作 - CTRL + SHIFT + P).
只有这样,排除的文件才会出现在您的快速打开菜单中。
更新:您也可以 运行 命令 "Clear Command History"。我忘记了。
确保选择了 'Use Exclude Settings and Ignore Files' 齿轮
2018 年 4 月更新
您可以在 vscode 的搜索部分执行此操作,方法是在要排除的每个文件夹或文件前加上感叹号。
使用 .gitignore 创建一个文件,并输入要忽略的文件夹或文件名。
忽略 node_modules 文件夹下的所有内容
echo node_modules/ > .gitignore
忘记上面的 vscode 排除搜索模式,尝试低于它适用于 vscode 最新版本中任何文件夹的模式!
!../../../locales/*
例如我搜索如下 vscode example clude settings
要包含的文件: *.js
要排除的文件: **/node_modules,!../../../locales/,!../../../theme/,!../. ./admin/client/*
我想完全排除 1 个 Workspace 文件夹,但发现这很困难,因为无论排除模式如何,它总是在每个 Workspace 文件夹上运行搜索。
最终,解决方案是将 **
添加到 文件夹设置 搜索排除模式。
如果您的工作区中有多个文件夹,请在每个文件夹上设置 search.exclude
。 WORKSPACE SETTINGS
旁边有一个 drop-down。
Folder Settings Tab
我是个白痴所以我花了一段时间才意识到这一点,但请确保在全局搜索中单击 Gear 图标以便应用您的设置。
简短的回答是 用逗号分隔 "files to exclude" 中要忽略的文件夹。
- 开始工作区范围搜索:CTRL+SHIFT+f
- 使用三点按钮展开全局搜索
- 输入您的搜索词
- 例如,在要排除的文件-输入字段中写入
babel,concat
以排除文件夹"babel"和文件夹"concat"在搜索中(确保排除按钮已启用)。 - 按回车键获取结果。
像这样从子文件夹中排除所有内容(2019 版)
包括
./db
排除
./db/*
我想在除插件("plugin" 文件夹)或以“.bak”、“.bak2”或“结尾的文件之外的所有文件中搜索术语 "Stripe" .log”(这是在 wordpress 安装的 wp-contents 文件夹结构中)。
我只想快速搜索一次,所以不想更改环境的搜索设置。这是我的操作方法(注意文件夹的双星号):
- 搜索词:条纹
- 包含文件:{空白}
- 排除文件:*.bak*、*.log、**/plugins/**
Here's what it looked like
扩展
ext install RedVanWorkshop.explorer-exclude-vscode-extension
演示:
您好,您需要找到设置并为历史文件添加新的排除模式
我确信它现在必须得到解决,但我也只是想贡献我的解决方案,这对某些人来说可能既简单又有用。
只需在搜索 exclude field
的下一行输入
*/node_modules/*
无需在 workspace/VS 代码的设置文件中进行任何设置。
在您的 vscode 项目中创建此文件
.vscode/settings.json
{
"search.exclude": {
"**/Pods": true,
"**/node_modules": true,
"**/*.code-search": true
}
}
由于之前没有提到,一些用户想知道如何在 ad-hoc 搜索中(暂时)排除多个文件或文件夹:
您可以使用 comma-separated 简化 列表从搜索中排除多个文件和文件夹通配模式 (如 VS Code's 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`)
*/
并且不要忘记激活 (⚙-) 使用排除设置和忽略文件 按钮在“搜索详细信息”面板上 (...)(遵循 Shotty 的解释)。