忽略搜索结果中的文件夹


164

我正在搜索字符串,并在源文件夹和构建文件夹中找到匹配项(源文件在构建过程中被复制以构建)。

我不需要生成文件夹结果。

Vim具有wildignore帮助筛选结果的功能。

intelij中有类似的东西吗?

Answers:


246

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

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

您也可以右键单击文件夹并选择Mark Directory As > Excluded

排除的文件夹(显示为rootExcluded)是IntelliJ IDEA“部分忽略”的文件夹。对于排除文件夹中的文件,提供的编码帮助非常有限。排除文件夹中包含的类不会出现在代码完成建议列表中,对此类的引用在编辑器中显示为未解析。搜索时,IntelliJ IDEA不会在排除的文件夹等中查找。

资源

注意:有关使用范围的另一种方法,请参见Nader Hadji Ghanbari的答案。


1
我在intellij 14中没有“文件”>“项目设置”。我已排除了一些文件夹,但它们不包含在搜索中。
埃里克·弗朗西斯

25
如果忽略文件夹,则将不会显示在搜索结果中。您也可以右键单击文件夹并选择Mark Directory As > Excluded
Darek Kay 2015年

12
仅当确实要忽略该文件夹时,才可以从项目中包含该文件夹。有时您不想排除该文件夹,而只是想从搜索中排除它。
Nader Ghanbari 2015年

22
我只是在IntelliJ 15.0.6中尝试过,排除的文件夹仍显示在搜索结果中。
史蒂文·比克斯

5
在Intellij 2019中似乎无法正常工作。排除的文件夹仍会显示在搜索结果中。
jrahhali

87

简短答案

通过在搜索时定义作用域,可以在该作用域中包含/排除任意文件/文件夹。

详细答案

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

跟着这些步骤:

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

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

搜索范围

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

添加新的自定义范围

  1. 给作用域命名并保存。

保存本地自定义范围

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

在此处输入图片说明

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

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

更多信息

您可以在Scopes上查看JetBrains文档以获取更多信息。范围不仅可以在搜索时使用,还可以在IntelliJ IDEA中的许多其他用例中使用。

模式

您可以使用模式来定义范围,从而使它们变得更加强大,并为将来提供证明。

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

在此处输入图片说明


2
看来,Idea 15让您单击“ 定制 ”旁边的“ ...”,而不是选择<unknown scope>
mikebridge

我如何才能在所有地方从搜索中排除文件?
ycomp

Waaay太多工作了!Allkenang的以下答案可通过两次单击解决问题。这比阅读此答案的简短版本要快。
Superole

3
@Superole是正确的,与接受的答案相同,但是它确实从项目中排除了该文件夹(它不再是源文件夹或测试文件夹),而这并不是您一直想要的。完全从项目中排除文件夹或仅针对特定搜索排除文件夹是两件不同的事情(这就是为什么某些人认为此答案有用的原因)。顺便说一句,如果您将Maven用于Java项目或将SBT用于Scala(或将其用于其他lang),则您可能永远都不想排除文件夹,因为一切都已经自动为您完成了。
Nader Ghanbari

感谢您教我有关范围的知识,@ NaderGhanbari!我没有意识到IntelliJ具有此功能。
Jan Molak

23

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

在“项目”窗口中,选择文件夹,然后右键单击并选择“标记目录为”>“已排除”


啊 谢谢!这比公认的答案容易一百万倍!我尝试首先创建范围,但这是滚动,单击,扩展,切换(包括和排除)的噩梦。
Superole

在Maven项目中,使用单独的应用程序更改分支后,此设置将不会保留。
Pr0methean

8
在IntelliJ 2018中似乎不起作用-标记为已排除,但仍显示在结果中:/
Chris Nevill


0

如果您正在搜索的用途,打开“查找用法设置...”,在默认情况下Ctrl+ Alt+ Shift+ F7,从“所有文件”的范围缩小到“项目文件”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.