Eclipse 快速搜尋

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

你是 Eclipse 使用者嗎? 你是否想要一個快速且簡單的方式來搜尋你的工作區中的文字片段和模式? 那就繼續讀下去!

全新的「快速搜尋」功能已包含在剛發布的 Spring ToolSuite (STS) 3.3.0 和 Groovy Grails 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 RegExp 時非常有幫助。

故事中另一個更有趣的部分是,你「體驗」到的速度實際上是一種錯覺。 最壞的情況是,你可能會將一個唯一的搜尋詞彙貼到對話框中,並且必須等待幾秒鐘,讓它搜尋你工作區中的所有檔案。 但實際上,你不太常遇到這種最壞的情況。 因此,讓我們看看幕後使用的兩個「技巧」。 (注意:我並未聲稱發明了這些技術。 我確信它們以前已被用於提供反應靈敏的搜尋體驗。 本文是關於我如何使用這些技術為我自己和其他 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")。 或者你可以直接從更新站點安裝。 透過選單「Help >> Install New Software」開啟 Eclipse 安裝程式,並將更新站點 URL 貼到對話框中 (本文末尾)。 然後僅選取「Eclipse Quicksearch」功能,然後點擊「Install」按鈕。

連結

Eclipse 更新站點 (請注意,更新站點連結無法在網頁瀏覽器中開啟。 請參閱上面的安裝說明)功能請求、錯誤報告和一般問題與回饋
如果你是 ... 
  • Eclipse 使用者
  • 想要一個快速且簡單的方式來搜尋你的工作區中的文字片段和模式
... 繼續讀下去!

訂閱 Spring 電子報

保持與 Spring 電子報的聯繫

訂閱

領先一步

VMware 提供培訓和認證,以加速你的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部