忽略搜索结果中的文件夹

Ignore a folder in search results

我正在搜索字符串并在源文件夹和构建文件夹中获取匹配项(源中的文件在构建期间被复制到构建)。

我不需要构建文件夹结果。

Vim 有 wildignore 这有助于过滤结果。

intelij中有类似的东西吗?

将您的构建文件夹标记为已排除:

File > Project Structure > Modules > Sources > Mark as Excluded (red icon)

您也可以右键单击您的文件夹,然后 select Mark Directory As > Excluded

Excluded folders (shown as rootExcluded) are ones that IntelliJ IDEA "partially ignores". Very limited coding assistance is provided for files in excluded folders. Classes contained in excluded folders don't appear in code completion suggestion lists, references to such classes are shown in the editor as unresolved. When searching, IntelliJ IDEA doesn't look in excluded folders, etc.

Source

注意:请参阅 Nader Hadji Ghanbari 的回答,了解另一种使用范围的方法。

简答

通过在搜索时定义 Scope,您可以 include/exclude 从该范围内任意 files/folders。

详细解答

实现您的要求(从搜索中排除文件和文件夹)的一种方法是定义自定义范围。这特别有用,因为有时您只想从搜索中排除一个文件夹,而不是从整个项目中排除。

按照以下步骤操作:

  1. Edit -> Find -> Find in path 或按 Ctrl+Shift+F.

  2. Scope 部分选择 Custom,然后选择 <unknown scope>

  1. 现在单击 + 按钮添加新的 local 自定义范围

  1. 为范围命名并保存。

  1. 现在您可以在此范围内包括和排除目录。您可以先通过选择 include recursively 添加所有内容,然后通过选择 excludeexclude recursively.
  2. 逐一排除

请注意,您甚至可以包含或排除项目所依赖的库。

  1. 搜索时,您可以在 Find in Path 对话框的 Scope 部分选择有效范围。

更多信息

您可以查看 JetBrains docs on Scopes 了解更多信息。范围不仅可以在搜索时使用,还可以在 IntelliJ IDEA 中的许多其他用例中使用。

模式

您可以使用 Patterns 定义一个范围,使它们更加强大和面向未来。

使用模式是排除文件和文件夹的另一种方法。例如 file:src/main/java//*&&!file:src/main/java/my//* 将排除 my 文件夹中的所有文件。

在 Intellij 15 中,要排除文件夹只需执行以下操作:

在项目 window 中,select 文件夹然后右键单击并选择 "Mark Directory As" > "Excluded"

如果您要搜索用法,请打开 "Find Usages Settings..." ,默认情况下 Ctrl+Alt+Shift+F7,将范围从"All files"缩小到"Project files".

从项目中排除文件和文件夹

Article last modified: 08 June 2020

  • 将文件标记为纯文本
    1. 在项目工具中 window,select 所需的文件。
    2. 从 selection 的上下文菜单中,选择 标记为纯文本

  • 按名称模式排除文件和文件夹

    1. Settings/Preferences 对话框 Ctrl+Alt+S 中,单击 目录
    2. 排除文件 字段中,键入定义要排除的文件和文件夹名称的掩码,例如 *.min.jslib .使用分号作为分隔符。
      • 如果文件名与这些模式中的任何一个匹配,该文件将被视为已排除。
      • 如果文件夹的名称与模式匹配,则排除该文件夹及其子文件夹中的所有文件。


来源:https://www.jetbrains.com/help/phpstorm/excluding-files-from-project.html

许多答案适用于旧版本的 IntelliJ,但在 2020.2 和其他最新版本中,我一直在搜索结果中看到排除的文件夹。在我的例子中:node_modules.

不过,我发现了一些有用的东西。至少对于 javascript 个项目。其他语言可能有类似的东西。

  • 当然,首先要从您的项目中排除该目录。

希望这有效,但如果无效,并且您正在使用 Javascript,请继续:

  • 转到设置 -> 语言和框架 -> Javascript -> 库
  • 在那里,取消选中您不想包含在搜索中的所有目录。

这是否是个好主意还有待观察; IntelliJ 不仅将它们从您的搜索中排除,而且从其所有代码解析中排除,这意味着它可能也无法识别来自该目录的导入。对我来说,目前它似乎工作正常,但我不提供任何保证。尝试一下,但要记住如何还原它。

这是一个丑陋的变通办法。 IntelliJ 显然需要一种更好的方法来从搜索中排除目录。

正如一些人提到的,简单地将文件夹设置为 'Excluded' 在许多版本中都不起作用。以下组合对我有用:

  1. 按照建议将有问题的文件夹设置为 'Excluded'。
  2. 使用pre-defined范围'Project Files'
  3. 利润

IntelliJ IDEA 2021.3.3(旗舰版)

就我而言,.tox_build 中生成的所有文件一直显示在我的查找结果中。它可能是一个钝器,但我将这两种文件夹类型添加到 首选项 -> 编辑器 -> 文件类型 -> 忽略的文件和文件夹: .tox,_build。无论出于何种原因,添加 _build 都不会被接受为忽略集的一部分。

请注意,您不会在项目导航器中看到这些文件和文件夹。但是,如果它们没有始终如一地出现在我的搜索结果中,这是一个很小的代价。