我需要在文件中查找。我想忽略或排除生成的文件,例如目标文件夹中的 JAX-WS 工件或类。我如何告诉 IDEA 从查找中排除这些文件?
创建一个自定义范围,定义要在搜索中包含/排除的文件集。
CTRL+SHIFT+F 查找 在 Files 对话框中。 (Mac用户按command+shift+F)
单击范围
从下拉列表中选择范围,或通过单击下拉列表右侧的 ... 按钮创建自定义范围。
在出现的对话框中,单击左上角的 + 按钮,然后选择 Local 并为您的自定义范围命名(您可以稍后更改)
右侧的按钮允许您包含和排除单个文件以及递归包含或排除文件夹下的所有文件。
如果您需要进一步细化自定义范围中包含的文件(例如,如果您想要定位磁盘上尚未存在的文件),则可以手动调整模式字段
创建后,后续的在文件中查找可以利用您的自定义范围来限制根据您指定的需求搜索哪些文件。
有关自定义范围的 2024 年功能的更多详细信息,请参见此处 https://www.jetbrains.com/help/idea/2024.1/settings-scopes.html?utm_source=product&utm_medium=link&utm_campaign=IU&utm_content=2024.1
我知道聚会已经晚了,罗布的回答很不错。我只想添加以下替代方案:如果您选择
Custom
范围(如 Rob 的答案),然后将选择保留在 Project Files
,这将使 IntelliJ 搜索比默认情况下更具选择性。我不知道确切的区别是什么,但特别有趣的是,如果您使用 Excluded
设置中的 Modules
选项卡,或者右键单击目录并选择,将目录标记为 Project Structure
Mark Directory As
-> Excluded
。
如果您要排除的文件位于单个或相对较少的目录中,那么您可以轻松地手动设置这些排除规则,这是无需配置自定义范围即可获得相同结果的非常好的方法。
我在 IntelliJ Ultimate 14.1.4 中对此进行了测试。我不知道它在其他版本中的表现如何,但我怀疑 v14 的大部分至少会表现相同。
您还可以放置以
!
符号开头的搜索文件过滤器来排除。
搜索不在测试 Java 文件中的代码的示例:
!*Test.java
如果您有多种类型的文件,可以用
,
符号分隔。
仅在 Kotlin 和 Groovy 文件中搜索的示例:
*.kt,*.groovy
这可能也有帮助。
IntelliJ 在搜索过程中跳过生成的文件模式
我使用下一个模式来排除生成的文件
!file:*intermediates*/&&!file:*generated*/&&!lib:*..*
我使用此过滤器创建自定义范围以排除 Play 框架应用程序中的目标文件夹:
(src:*..*||test:*..*)&&!file:target//*
此外,这是范围定义语言的语言参考:https://www.jetbrains.com/help/idea/scope-language-syntax-reference.html