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

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

Vim具有wildignore功能,可以帮助过滤结果。

intelij中也有类似的东西吗?


当前回答

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

最后修改:2020年6月8日

将文件标记为纯文本 在Project工具窗口中,选择所需的文件。 在选项的上下文菜单中,选择“标记为纯文本”:


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


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

其他回答

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

IntelliJ IDEA 2021.3.3(终极版)

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

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

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

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

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

最后修改:2020年6月8日

将文件标记为纯文本 在Project工具窗口中,选择所需的文件。 在选项的上下文菜单中,选择“标记为纯文本”:


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


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

简短的回答

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

详细的回答

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

遵循以下步骤:

Edit -> Find -> Find in path或按Ctrl+Shift+F。 在作用域部分选择自定义,然后选择<未知作用域>

现在单击+按钮添加一个新的本地自定义作用域

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

现在您可以从这个范围中包含和排除目录。你可以先通过递归地选择include来添加所有东西,然后通过递归地选择exclude或exclude来逐个排除。

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

当搜索时,您可以通过在“查找路径”对话框中的“范围”部分选择有效范围。

更多信息

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

模式

您可以使用模式来定义一个范围,这使得它们更加强大,并且是未来的证明。

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