忽略搜索结果中的文件夹

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

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

Vim有wildignore来帮助过滤结果。

intelij中也有类似的东西吗?

84341 次浏览

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

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

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

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

Source .

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

简短的回答

通过在搜索时定义范围,可以在该范围内包含/排除任意文件/文件夹。

详细的回答

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

遵循以下步骤:

  1. Edit - > Find - > Find in path或按< kbd > Ctrl < / kbd > + < kbd >转变< / kbd > + < kbd > F < / kbd >。

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

搜索范围

  1. 现在单击+按钮添加一个新的local自定义作用域

添加一个新的自定义范围

  1. 给作用域一个名称并保存它。

保存本地自定义作用域

  1. 现在您可以从这个范围中包含和排除目录。你可以先通过选择include recursively来添加所有的东西,然后通过选择excludeexclude recursively来逐个排除。

enter image description here

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

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

更多信息

你可以检查关于Scopes的JetBrains文档获取更多信息。作用域不仅可以在搜索时使用,还可以在IntelliJ IDEA中的许多其他用例中使用。

模式

你可以使用模式来定义一个作用域,这使得它们更加强大和未来证明。

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

enter image description here

在Intellij 15中,要排除一个文件夹,只需这样做:

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

如果您正在搜索用法,请打开“查找用法设置…”,默认为Ctrl+Alt+转变+F7,将范围从“所有文件”缩小到“项目文件”。

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

Article last modified: 08 June 2020

  • 将文件标记为纯文本
    1. 在Project工具窗口中,选择所需的文件。
    2. 从选项的上下文菜单中,选择标记为纯文本: 李enter image description here < / >

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

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

enter image description here


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

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

不过我找到了一个有用的方法。至少对于javascript项目是这样的。对于其他语言可能有类似的东西可用。

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

希望这是有效的,但如果它没有,并且你正在使用Javascript,继续:

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

这是否是一个好主意还有待观察;IntelliJ不只是将它们从搜索中排除,而是从所有的代码解析中排除,这意味着它可能也不能识别来自该目录的导入。对我来说,目前它似乎工作得很好,但我不能保证。尝试一下,但请记住如何恢复它。

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

正如一些人提到的,在许多版本中,简单地将文件夹设置为“排除”是行不通的。对我来说,以下几点结合起来就可以了:

  1. 按照建议将违规文件夹设置为“排除”。
  2. 使用预定义的范围“项目文件”
  3. 利润

IntelliJ IDEA 2021.3.3(终极版)

在我的例子中,在.tox_build中生成的所有文件一直显示在我的查找结果中。这可能是一个生硬的工具,但我将这两个文件夹类型添加到偏好→编辑→文件类型->被忽略的文件和文件夹: .tox, _build。无论出于何种原因,添加_build将不会被接受为被忽略集的一部分。

注意,您将在Project导航器中看不到这些文件和文件夹。然而,这是一个小代价,没有让他们始终显示在我的搜索结果。

enter image description here