我如何告诉 IntelliJ 的“在文件中查找”忽略生成的文件?

我需要在文件里找到一些东西。我希望忽略或排除生成的文件,比如 JAX-WS 构件或目标文件夹中的类。我如何告诉 IDEA 从查找中排除这些文件?

36672 次浏览

创建一个 自定义范围,定义要从搜索中包含/排除的文件集。

  1. 对于 < strong > Find,CTRL + SHIFT + F 在 Path 对话框(Mac 用户按 command + shift + F)
  2. 范围下选择 习俗

    Find in Path

  3. Choose a scope from the drop down list or create a Custom Scope by clicking on the ... button to the right of dropdown.

  4. 在出现的对话框中,单击 +按钮并选择 本地
  5. 在右窗格中,可以包含和排除单个文件,并可以递归地包含或排除文件夹下的所有文件。

Now when you use Find in Path, use your custom scope to restrict which files are searched.

我怀疑从您的问题中提到的 在文件中查找中,这些说明可能不适用于您的版本,但是了解这个功能的存在是有用的,并且总是存在30天的评估版本。

我知道现在说这个有点晚了,罗伯的回答也不错。我只是想添加以下替代方案: 如果您选择了 Custom范围(就像 Rob 的答案一样) ,那么将选择保留在 Project Files,这将使 IntelliJ 搜索比默认情况下更有选择性。我不知道确切的区别是什么,但是特别有趣的是,如果您使用 Project Structure设置中的 Modules选项卡将一个目录标记为 Excluded,或者右键单击一个目录并选择 Mark Directory As-> Excluded

如果要排除的文件位于单个或相对较少的目录中,那么您可以轻松地手动设置这些排除规则,这是一种获得相同结果的非常好的方法,而无需配置自定义作用域。

I tested this in IntelliJ Ultimate 14.1.4. I have no idea how it behaves in other versions, but I suspect most of v14 at least will behave the same.

还可以将以 !符号开头的搜索文件过滤器排除在外。 搜索不在 Test Java 文件中的代码的示例: !*Test.java

如果你有几种类型的文件,你可以用 ,号分开。 仅在 Kotlin 和 Groovy 文件中搜索的示例: *.kt,*.groovy

This might be also helpful.

跳过生成的文件模式

我使用下一个模式来排除生成的文件

!file:*intermediates*/&&!file:*generated*/&&!lib:*..*

[How to add a new pattern follow and skip tests pattern]

我使用这个过滤器来创建一个自定义范围来排除播放框架应用程序中的目标文件夹:

(src:*..*||test:*..*)&&!file:target//*

此外,这是范围定义语言 https://www.jetbrains.com/help/idea/scope-language-syntax-reference.html的语言引用