【问题标题】:Exclude folder from search but not from the project list从搜索中排除文件夹,但不在项目列表中
【发布时间】:2013-05-09 16:19:03
【问题描述】:

我有几个不同的项目具有相同的core。

我只需要将所有非当前项目标记为excluded 以避免搜索它们(简单搜索,shift + cmd + n 等)

换句话说,我想得到来自core + current project 的搜索结果。

close 有什么方法可以做一些项目,但在projects list 和open 中提供它们,因为它被关闭那么容易吗?或者您可能有其他经历?

【问题讨论】:

  • 从普通文本搜索中排除——简单——只需定义自定义范围(首选项|范围)并在“在路径中查找/替换”和类似对话框中使用它。但这不适用于“导航|文件/类/符号”,因为它始终适用于整个项目。取而代之的是-更好地重新组织您的文件夹结构(“隐藏此文件夹,因为我确实与另一个文件夹一起工作”不是正确的方法)。
  • 是的,我想要做的其中一种方法是为每个文件夹创建单独的项目并创建指向core 文件夹的符号链接。但我正在寻找替代方法。
  • 不需要符号链接(尽管我也在使用它——对我来说很好用)。您可以将其附加为附加内容根目录(首选项 | 目录)。
  • 太棒了!请将您的回复作为答案发布,我会接受。

标签: php phpstorm webstorm


【解决方案1】:

要应用自定义搜索,请使用范围 Settings/Preferences > Appearance & Behavior > Scopes 将其用于 Find in Path 或 Replace in Path。
我建议重新组织您的文件夹,以免在项目目录中留下不必要的文件。此外,您可以通过转到 Settings > Project Settings > Directories 并添加其他目录来指定 Source Root。

【讨论】:

  • 你可以用这个创建范围:!file[*]:.idea/*&&!file[*]:.idea//*&&!file[*]:app/cache//*&&!file[*]:app/logs//*
  • Mac 用户仅供参考,它是 PhpStorm > Preferences > Appearance & Behavior > Scopes
  • 我认为这个答案现在已经过时了。设置 > 项目设置 > 范围似乎不存在
  • @Andrew 它位于设置 > 外观和行为 > CE 2016.3 的范围
  • 谢谢 tex... 就是这个。
【解决方案2】:

这是从搜索结果中排除目录的最佳方式。我在大型 Magento 项目上工作,其中包含许多我不想在搜索结果中出现的目录。这解决了我的问题。如果您的项目包含 /vendor 目录,这将有助于加快 PHPStorm 中的索引,因为它被忽略了。

右键单击任何文件夹以显示以下选项。

【讨论】:

  • 也适用于 Laravel 包开发。推荐的方法是在项目根目录中创建包文件夹。现在它将使用与您的主项目相同的类,因此您最终会遇到大量重复的类存在错误。右键单击并执行此操作,它就像魔术一样工作。范围方法对我不起作用!
  • 点击并享受解决方案
【解决方案3】:

自版本 2016.3 起,可在以下位置找到 设置 > 外观和行为 > 范围。

或者不管是什么版本,只需转到设置,然后在顶部的搜索框中输入“范围”即可。

然后只需点击+号添加范围,选择要排除的文件夹,点击递归排除并应用。

然后,当您使用 CTRL+SHIFT+F 进行搜索时,在选项 > 范围下选择自定义并选择您刚刚创建的范围(感谢评论者)。

【讨论】:

  • 只想添加,如果您使用像 cmd+shift+F 这样的 FIND,然后在选项选项卡中您可以单选自定义,然后选择椭圆,它会打开范围工具,您可以选择或创建一个排除您需要的范围。
  • This automatically excludes this folder's contents from the searches... 创建自定义范围后,我的搜索 Ctrl+Shift+F 仍在全局搜索,直到我明确选择“自定义”并按照@daveferrara1 的建议选择了我的范围。
  • 2020 年:点击 + Local 与 Shared 选项后,表示排除是否进入 VCS。然后你必须命名它。然后在@DimitryK 的步骤(现在称为Scope 选项卡)之后,您必须在下拉菜单中选择相同的名称。 (Jetbrains UX 是否正在修补把其他人变成一个脾气暴躁的老人?)
【解决方案4】:

就像@Justinas 和评论者所说:您可以通过在使用 Find in Path(和类似方法)时选择自定义范围来创建自定义范围并每次都惹恼自己,因为 PhpStorm 不使用该自定义范围默认情况下??‍♂️

排除 node_modules 目录会破坏自动完成和其他代码辅助功能。你不想那样做。

但是,我发现了一个 hack,它不需要 node_modules 的任何目录排除,也不需要自定义范围:

  1. 关闭 PhpStorm。确保它没有运行。
  2. 使用您喜欢的文本编辑器在您的项目目录中的 .idea 目录中打开 name_of_your_project.iml。 只要不是 PhpStorm。
  3. 删除<content url="file://$MODULE_DIR$/node_modules" />这一行
  4. 保存。
  5. 再次享受生活。

我觉得 JetBrains 默认包含 依赖存储目录 像 JavaScript/TypeScript 的 node_modules 和 PHP 的 vendor 是很业余的。 几乎没有任何用例将这些目录包含在查找和替换功能中,更不用说重构功能了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 2017-06-08
    • 2010-10-01
    • 2019-01-15
    • 2016-11-01
    • 1970-01-01
    • 2012-06-13
    • 2012-01-03
    相关资源
    最近更新 更多