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

Posted

技术标签:

【中文标题】选择在 VS Code 中搜索时要忽略的文件夹【英文标题】:Choose folders to be ignored during search in VS Code 【发布时间】:2015-07-10 09:12:48 【问题描述】:

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

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

【问题讨论】:

嗯,等一下,在 2019 年 ⌘O 的意思是“打开文件...”,我怀疑 VS Code 对您可能在那里看到的任何(特定于操作系统的)搜索工具有很大的控制权。它可能能够将文件过滤到仅某些扩展名? 现在和Command +T类似吗?当我在全局搜索中为 m 搜索添加前缀 # 时,我会看到来自 node_modules 的内容。 相关设置 我正在寻找:search.useIgnoreFiles search.useGlobalIgnoreFiles(告诉搜索是否注意 gitignore 中的内容以过滤掉搜索到的内容 - 我更喜欢这个一般来说,如果我想让它过滤掉一些东西,我会明确地让它知道) 【参考方案1】:

临时排除

在搜索功能中,单击省略号以显示 files to includefiles 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 目录下。

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

这是我的示例设置:


    // ...
    "search.exclude": 
        "**/.git": true,
        "**/node_modules": true,
        "**/bower_components": true,
        "**/tmp": true
    ,
    // ...

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

更新设置前的搜索图片

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

更新设置后的搜索图片:

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

【讨论】:

这在最近的版本中对我不起作用了...知道为什么吗? 有没有办法让它适用于“快速打开”功能?在 PC 上按 Ctrl+P,在 Mac 上按 Cmd+P。当我使用此功能搜索文件时,它们仍然会出现。 确保清除您的编辑器历史记录以使其正常工作。 github.com/Microsoft/vscode/issues/6502 我必须运行命令“清除编辑器历史记录”(参见此处:github.com/Microsoft/vscode/issues/6502#issuecomment-273697138)并重新启动 VS Code 才能为我工作。 请注意,搜索文件时可以关闭搜索排除。在搜索区域中,展开“要排除的文件”输入框并确保选择了齿轮图标。这将确保您的搜索排除设置得到遵守。【参考方案2】:

确保选中“使用排除设置并忽略文件”齿轮

【讨论】:

如何排除多个文件夹? @WouterVanherck 您只需添加一个逗号来分隔您要排除的每个文件或文件夹。示例:./src/public/,src/components/ 谢谢!我永远不会猜到单击该图标会打开和关闭我的工作区设置。我花了几个小时认为我的设置不正确。【参考方案3】:

2018 年 4 月更新

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

【讨论】:

没错!完美【参考方案4】:

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

【讨论】:

你不是白痴,因为这是为我修复它的答案,我过去一定不小心点击了那个图标,这个小图标控制它并不明显,而且几乎不引人注意何时启用或禁用 你当然不是错过了那美妙的 UX 的白痴,但你能告诉我你的和this earlier answer 有什么不同吗,如果是的话——好吧,除了这个答案之外模式? ;^D @ruffin 没有注意到前面的答案哈!我猜我的用户体验更好(箭头);) 哈! 22 个人和计数同意,那我该争论谁?至少我没有错过明显的东西;谢谢。【参考方案5】:

这个答案已经过时了

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

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

【讨论】:

如果它已过时,请更新或删除它以避免混淆和可能的反对意见! 认真地进行编辑。以上接受的答案在 macOS 上的最新 VS Code 中有效。所以放弃你的 BS 来支持投票,并为实际答案做出有用的贡献。 我认为链接改为code.visualstudio.com/docs/getstarted/settings 之所以应该接受这个答案是因为它保存了配置文件。【参考方案6】:

如果我理解正确,您想从 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打开这个文件

【讨论】:

【参考方案7】:

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

【讨论】:

这是更新和更有用的答案。请点赞。【参考方案8】:

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

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

【讨论】:

【参考方案9】:

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

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

【讨论】:

【参考方案10】:

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

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

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

【讨论】:

【参考方案11】:

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

.vscode/settings.json


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

【讨论】:

【参考方案12】:

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

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

例如,我搜索如下 vscode example clude settings

要包含的文件: *.js

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

【讨论】:

【参考方案13】:

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

Folder Settings Tab

【讨论】:

【参考方案14】:

从子文件夹中排除所有类似这样的工作(2019 版)

包括

./db

排除

./db/*

【讨论】:

【参考方案15】:

扩展most voted answer,现在有一个扩展来实现那里描述的以GUI方式快速切换的功能。它被称为Explorer Exclude。您可以使用以下命令安装它:

ext install RedVanWorkshop.explorer-exclude-vscode-extension

演示:

【讨论】:

【参考方案16】:

我确信现在必须解决它,但我只是想贡献我的解决方案,这可能对某人来说既简单又有用。

只需在搜索的exclude field 中输入以下行

*/node_modules/*

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

【讨论】:

【参考方案17】:

我想在除插件(“plugin”文件夹)或以“.bak”、“.bak2”或“.log”结尾的文件(这是在 wordpress 安装的 wp-contents 文件夹结构中)。

我只想快速进行一次此搜索,因此我不想更改环境的搜索设置。我是这样做的(注意文件夹的双星号):

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

Here's what it looked like

【讨论】:

【参考方案18】:

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

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

echo node_modules/ > .gitignore 

【讨论】:

问题不在于 git

以上是关于选择在 VS Code 中搜索时要忽略的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

VS code key shortcuts for windows

VS Code:“断点被忽略,因为找不到生成的代码”错误

在 VS Code 中搜索所有*不*包含字符串的文件

在 VS Code 中调试时如何跳过外部代码

如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿

VS Code 配置Python