Eclipse 快速搜尋

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

您是 Eclipse 使用者嗎?您是否想快速輕鬆地在工作空間中搜索文字片段和模式?那麼請繼續閱讀!

Spring Tool Suite (STS) 3.3.0 和 Groovy Grails Tool Suite (GGTS) 3.3.0 剛剛釋出,其中包含了一個新的“快速搜尋”功能。即使您不是 Spring 或 Grails 開發者,您可能也會對這個功能感興趣,因為它可以單獨安裝到標準的 Eclipse 中。

快速搜尋對話方塊簡介

快速搜尋對話方塊只專注於做好一件事:使用簡單的文字搜尋快速瀏覽您的工作空間。

您可以透過按 CTRL+SHIFT+L(或在 Mac 上按 CMD+SHIFT+L)開啟對話方塊

簡單的力量

與標準的 Eclipse 搜尋 UI 不同,快速搜尋 UI 極其簡單。無需配置(例如,無需定義搜尋範圍、建立工作集等)。只有一個搜尋文字框。開始輸入,您會看到結果立即出現,並且隨您輸入而即時更新。使用箭頭鍵選擇結果,按 Enter 鍵導航到該結果。您也可以立即按 Enter 鍵開啟第一個結果。

當然,如果您願意,也可以使用滑鼠,但是您的雙手無需離開鍵盤

如果您在 Eclipse 編輯器或檢視中選中一段文字,當您開啟快速搜尋時,該字串將自動輸入到搜尋框中。開始輸入以替換它。例如,您可以在控制檯中選中一個日誌或錯誤訊息字串,以便快速搜尋它。

如果沒有選中任何內容,則您的上次搜尋將輸入到搜尋框中。當您反覆搜尋相同的模式時,這很有幫助。

我們是如何做到如此之快的?

當您使用快速搜尋對話方塊時,結果通常會幾乎即時出現,並隨您繼續輸入而即時更新。這一切都無需使用搜索索引完成,即使在較大的工作空間(例如,包含所有 STS 和 GGTS 的我們自己的工作空間相當大)上,它的擴充套件性也相當好。

那麼,這是如何做到的呢?說實話,我們之所以能有很大提升,是因為現代硬體確實相當快。當您使用高度最佳化的原生 Java 正則表示式時,快速的 CPU、大容量的 RAM 和作業系統中良好的檔案系統快取能夠發揮很大作用。

故事中另一個更有趣的部分是,您“體驗”到的速度實際上有點像錯覺。在最壞的情況下,您可能會將一個唯一的搜尋詞貼上到對話方塊中,然後不得不等待幾秒鐘,因為它會搜尋您工作空間中的所有檔案。實際上,您很少會遇到這種最壞的情況。所以,讓我們看看隱藏在神奇幕布後面的兩個“技巧”。(注:我並非聲稱發明了這些技術。我確信它們以前曾被用於提供響應式搜尋體驗。本文是關於我如何使用這些技術為我自己和其他 Eclipse 使用者建立了一個不錯的文字搜尋工具。)

技巧 1:非同步性

一旦您輸入第一個字元,搜尋過程就會啟動,並開始搜尋與您的查詢匹配的內容。結果一經找到就會立即顯示。通常,單個字元的搜尋在幾乎任何檔案中都會有很多匹配項。  因此,對話方塊會立即填充結果。為了避免對話方塊結果過多,當達到約 200 個結果的限制時,搜尋器會暫停。

當您輸入另一個字元時,搜尋詞會更新。但不是從頭開始重新搜尋,而是在正在執行的搜尋程序內部更新搜尋詞。這意味著後續找到的任何結果都將與新的搜尋詞匹配。但是,已經找到的結果呢?它們不僅不是無用的,我們知道它們已經包含了新查詢的結果!例如,如果我們輸入“av”,那麼任何包含“av”的內容顯然也必須包含“a”。因此,我們只需對舊查詢“a”的結果進行過濾,排除不匹配新查詢“av”的結果即可。這比從頭開始重新搜尋要快得多,因為我們只需過濾相對較少數量的記憶體中的專案,而不是再次掃描檔案系統。因此,您在輸入時更新是即時發生的。

技巧 2:優先順序劃分

第二個技巧是“優先順序劃分”。如果任其執行,快速搜尋引擎最終會遍歷您工作空間中的所有檔案。但它會嘗試智慧地優先遍歷您可能更感興趣的檔案。我們實現這一點的方式並不是特別複雜。我們只是根據當前在編輯器中開啟的檔案來劃分優先順序。最高優先順序分配給“當前活動編輯器”。然後是其他編輯器中開啟的檔案。接著是與這些檔案位於同一資料夾中的檔案,依此類推。

這有兩個好處。首先,它使搜尋更快地返回您感興趣的結果。其次,它使更感興趣的結果出現在列表頂部附近。

調整與選項

之前我說沒有選項可以配置。我撒謊了 :-)。快速搜尋實際上並不搜尋您工作空間中的所有檔案。它跳過了一些東西。這很好,因為它加快了搜尋速度。而且,您可能也不想看到這些檔案中的結果。例如,maven 的 'target' 目錄、'.git' Git 元資料目錄等中的檔案。跳過的內容可以透過“首選項”頁面進行配置。  希望我們設定的預設值是正確的,這樣大多數使用者就不需要更改它們。但如果您需要,可以進行更改。

安裝

Eclipse Quicksearch 功能預裝在 GGTS 和 STS(3.3.0 及更高版本)中。它是 'eclipse-integration-commons' 專案的一部分。但是,您也可以將其單獨安裝到標準的 Eclipse 中,因為此功能不依賴於其他 Spring 專案程式碼。

要單獨安裝,您可以從 Eclipse Market place 獲取(搜尋“Quick Search”)。或者您可以直接從更新站點安裝。透過選單“幫助 >> 安裝新軟體”開啟 Eclipse 安裝程式,並將更新站點 URL 貼上到對話方塊中(在本文末尾)。然後僅選擇“Eclipse Quicksearch”功能,點選“安裝”按鈕。

連結

Eclipse 更新站點(注意,更新站點連結無法在 Web 瀏覽器中開啟。請參閱上面的安裝說明)功能請求、錯誤報告和一般問題與反饋
如果您是... 
  • Eclipse 使用者
  • 希望在工作空間中快速輕鬆地搜尋文字片段和模式
... 請繼續閱讀!

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

快人一步

VMware 提供培訓和認證,助力您的發展。

瞭解更多

獲取支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一次簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視全部