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

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


当前回答

2018年4月更新

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

其他回答

如果我理解正确,你想从vscode中排除文件 模糊搜索。如果是这样的话,我猜上面的答案是针对旧版本的vscode。 对我来说有用的是:

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

到我的settings.json。该文件可以通过“文件>首选项>设置”打开

临时除外

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

持续的除外

从菜单选择文件➡️首选项➡️设置➡️用户/工作区设置和过滤默认设置进行搜索。

用户设置将应用于所有工作区 工作空间设置将仅应用于此工作空间

您可以修改搜索。排除设置(从默认设置复制到用户或工作区设置)。这只适用于搜索。注意文件中的设置。Exclude将自动应用。

切换搜索排除

当使用文件中的齿轮图标搜索排除文本框时,您可以(有时偶然地)切换是否启用或禁用这些排除。单击省略号,然后单击齿轮图标进行切换。

关于在Visual Studio Code中配置设置的附加文档

如果设置不起作用

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

例子

我正在开发一个EmberJS应用程序,它在tmp目录下保存了数千个文件。

如果选择搜索字段右侧的“工作区设置”,则搜索排除将仅应用于此特定项目。相应的.vscode文件夹将被添加到包含settings.json的根文件夹中。

这是我的示例设置:

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

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

更新设置前搜索图片:

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

更新设置后的搜索图片:

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

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

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

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

这是它的样子

如果您的工作空间中有多个文件夹,请设置搜索。排除在每个文件夹上。工作区设置旁边有一个下拉菜单。

文件夹设置选项卡

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

只需在搜索的排除字段中键入下面的行

* / node_modules / *

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