Eclipse 快速搜索

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

您是 Eclipse 用户吗?您是否想要一种快速简便的方法来搜索工作空间中的文本片段和模式?那么请继续阅读!

Spring ToolSuite (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 的工作区相当大),它也能很好地扩展。

那么这是怎么可能的呢?嗯,老实说,我们获得了一个很大的提升,因为现代硬件确实非常快。一个快速的 CPU、大量的 RAM 和操作系统中良好的文件系统缓存,当你使用高度优化的原生 Java 正则表达式时,都能发挥很大作用。

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

技巧 1:异步性

当你输入第一个字符后,搜索过程就会启动,并开始搜索与你的查询匹配的内容。结果一找到就会显示出来。通常,单字符搜索会在几乎所有文件中找到许多匹配项。所以,对话框会立即 запол起来。为了避免对话框爆炸,搜索器在达到大约 200 个结果的限制时会暂停。

当你输入另一个字符时,搜索词会更新。但不是从头开始重新搜索,而是在正在运行的搜索过程中更新搜索词。这意味着任何后续结果都将匹配新的搜索词。但是已经找到的结果呢?嗯,它们远非无用,我们知道它们已经包含了新查询的结果!例如,如果我们输入“av”,那么任何包含“av”的东西显然也必须包含“a”。所以我们所要做的就是从旧查询“a”的结果中过滤掉不匹配新查询“av”的结果。这比从头开始重新搜索要快得多,因为我们只需要过滤相对少量内存中的项目,而不是再次扫描文件系统。因此,随打随更的更新是即时发生的。

技巧 2:优先级

第二个技巧是“优先级”。如果任其运行,快速搜索引擎最终会遍历工作区中的所有文件。但它会尝试智能地首先遍历你可能更感兴趣的文件。我们这样做的方式并不特别复杂。我们只是根据当前在编辑器中打开的文件来确定优先级。“当前活动编辑器”被赋予最高优先级。然后是其他编辑器中打开的文件。然后是与这些文件位于相同文件夹中的文件,依此类推。

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

调整和选项

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

安装

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

要单独安装,你可以从 Eclipse Marketplace 获取(搜索“Quick Search”)。或者你可以直接从更新站点安装。通过菜单“Help >> Install New Software”打开 Eclipse 安装程序,并将更新站点 URL 粘贴到对话框中(本文末尾)。然后只选择“Eclipse Quicksearch”功能并点击“Install”按钮。

链接

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有