Eclipse 快速搜索

工程 | Kris De Volder | 2013 年 7 月 11 日 | ...

您是 Eclipse 用户吗?您是否希望有一种快速简便的方法来搜索工作区中的文本片段和模式?请继续阅读!

Spring Tool Suite (STS) 3.3.0 和 Groovy Gails Tool Suite (GGTS) 3.3.0(刚刚发布)中包含了一个新的“快速搜索”。即使您不是 Spring 或 Grails 开发人员,您也可能对此功能感兴趣,因为它也可以单独安装到普通 Eclipse 中。

介绍快速搜索对话框

快速搜索对话框旨在只做一件事并将其做好:使用简单的文本搜索快速浏览工作区。

您可以通过按CTRL+SHIFT+L(或 Mac 上的CMD+SHIFT+L)打开对话框

简单性的力量

与标准的 Eclipse 搜索 UI 不同,QuickSearch UI 非常简单。无需配置(例如,无需定义搜索范围创建工作集等)。只有一个搜索文本框。开始键入并查看结果立即出现在您键入时即时更新。使用箭头键选择结果,然后按 Enter 键导航到该结果。您也可以立即按 Enter 键打开第一个结果。

当然,如果您愿意,也可以使用鼠标,但无需将手离开键盘

如果您在 Eclipse 编辑器或视图中选择了一个文本片段,则在您打开快速搜索时,该字符串将自动输入搜索框中。开始键入以替换它。例如,您可以在控制台中选择日志或错误消息字符串以快速搜索它

如果未选择任何内容,则您的上次搜索将输入搜索框中。当您重复搜索相同模式时,这很有帮助。

我们如何使其如此快速?

当您使用快速搜索对话框时,结果通常会几乎立即出现,并在您继续键入时即时更新。所有这些都在不使用搜索索引的情况下完成,它甚至在较大的工作区中也能很好地扩展(例如,我们自己的包含所有 STS 和 GGTS 的工作区相当大)。

那么这怎么可能呢?好吧,说实话,我们得到了很大的提升,因为现代硬件确实非常快。当您使用经过高度优化的原生 Java RegExp 时,快速的 CPU、大量的 RAM 和操作系统中的良好文件系统缓存大有帮助。

故事的另一个更有趣的部分是您“体验”到的速度实际上有点错觉。在最坏的情况下,您可能会将唯一的搜索词粘贴到对话框中,并可能需要等待几秒钟,因为它会搜索工作区中的所有文件。在实践中,您不会经常遇到这种情况。因此,让我们看一下幕后使用的两个“技巧”。(注意:我并不声称发明了这些技术。我相信它们以前已被用于提供响应式搜索体验。本文介绍了如何使用这些技术为自己和其他 Eclipse 用户创建了一个不错的文本搜索工具。)

技巧 1:异步性

只要您键入第一个字符,搜索过程就会启动,并开始搜索与您的查询匹配的内容。找到结果后立即显示。通常,单个字符搜索在几乎任何文件中都会有很多匹配项。因此,对话框会立即填充。为了防止对话框爆炸,搜索程序将在达到大约 200 个结果的限制时暂停。

当您键入另一个字符时,搜索词会更新。但是,与其从头开始重新启动搜索,不如在正在运行的搜索过程中更新搜索词。这意味着以后的任何结果都将与新的搜索词匹配。但是已经找到的结果呢?好吧,它们远非无用,我们知道它们已经包含新查询的结果!例如,如果我们键入“av”,则包含“av”的任何内容显然也必须包含“a”。因此,我们只需对旧查询“a”的结果进行筛选即可,筛选出不匹配新查询“av”的结果。这比从头开始重新开始搜索快得多,因为我们只需要筛选内存中的少量项目,而不是再次扫描文件系统。因此,在您键入时更新会立即发生。

技巧 2:优先级

第二个技巧是“优先级”。如果任其运行,快速搜索引擎最终将遍历工作区中的所有文件。但它试图在遍历您可能最感兴趣的文件时变得聪明。我们这样做的方式并不特别复杂。我们只是根据当前在编辑器中打开的文件设置优先级。最高优先级分配给“当前活动编辑器”。然后是其他编辑器中打开的文件。然后是与这些文件位于同一文件夹中的文件,依此类推。

这有两个好处。首先,它使搜索更快地返回有趣的结果。其次,它使更有趣的结果出现在列表的顶部。

调整和选项

之前我说过没有选项可以配置。我撒谎了 :-)。快速搜索实际上不会搜索工作区中的所有文件。它跳过了很多东西。这很好,因为它加快了搜索速度。此外,您可能也不希望在这些文件中看到结果。例如,maven 'target' 目录、'.git' Git 元数据目录等中的文件。跳过哪些内容可以通过“首选项”页面进行配置。希望我们设置了正确的默认值,因此大多数用户无需更改它们。但是,如果您需要,可以更改。

安装

Eclipse 快速搜索功能预装在 GGTS 和 STS(3.3.0 及更高版本)中。它是 'eclipse-integration-commons' 项目的一部分。但是您也可以将其单独安装到普通 Eclipse 中,因为此功能不依赖于其他 Spring 项目代码。

对于单独安装,您可以从 Eclipse 市场获取(搜索“快速搜索”)。或者您可以直接从更新站点安装。通过菜单“帮助 >> 安装新软件”打开 Eclipse 安装程序,并将更新站点 URL 粘贴到对话框中(本文末尾)。然后仅选择“Eclipse 快速搜索”功能,然后点击“安装”按钮。

链接

Eclipse 更新站点(请注意,更新站点链接无法在 Web 浏览器中打开。请参阅上面的安装说明)功能请求、错误报告以及一般问题和反馈
如果您是……
  • Eclipse 用户
  • 希望有一种快速简便的方法来搜索工作区中的文本片段和模式
……请继续阅读!

获取 Spring 时事通讯

通过 Spring 时事通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部