領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多您是 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 編輯器或檢視中選擇了一段文字,當你開啟快速搜尋時,該字串將自動輸入到搜尋框中。開始輸入以替換它。例如,你可以在控制檯中選擇一個日誌或錯誤訊息字串,以便快速搜尋它。
如果沒有選擇任何內容,則你上次的搜尋將輸入到搜尋框中。這有助於當你反覆搜尋相同模式時。
那麼這是怎麼可能的呢?嗯,老實說,我們獲得了一個很大的提升,因為現代硬體確實非常快。一個快速的 CPU、大量的 RAM 和作業系統中良好的檔案系統快取,當你使用高度最佳化的原生 Java 正則表示式時,都能發揮很大作用。
故事中另一個更有趣的部分是,你“體驗”到的速度實際上有點像幻覺。最壞的情況是,你可能會將一個獨特的搜尋詞貼上到對話方塊中,然後不得不等待幾秒鐘,因為它會搜尋工作區中的所有檔案。實際上,你不會經常遇到這種最壞的情況。所以讓我們看看魔術幕後使用的兩個“技巧”。(注意:我並不聲稱發明了這些技術。我確信它們以前曾被用於提供響應式搜尋體驗。本文是關於我如何使用這些技術為自己和其他 Eclipse 使用者建立一個出色的文字搜尋工具。)
技巧 1:非同步性
當你輸入第一個字元後,搜尋過程就會啟動,並開始搜尋與你的查詢匹配的內容。結果一找到就會顯示出來。通常,單字元搜尋會在幾乎所有檔案中找到許多匹配項。所以,對話方塊會立即 запол起來。為了避免對話方塊爆炸,搜尋器在達到大約 200 個結果的限制時會暫停。
當你輸入另一個字元時,搜尋詞會更新。但不是從頭開始重新搜尋,而是在正在執行的搜尋過程中更新搜尋詞。這意味著任何後續結果都將匹配新的搜尋詞。但是已經找到的結果呢?嗯,它們遠非無用,我們知道它們已經包含了新查詢的結果!例如,如果我們輸入“av”,那麼任何包含“av”的東西顯然也必須包含“a”。所以我們所要做的就是從舊查詢“a”的結果中過濾掉不匹配新查詢“av”的結果。這比從頭開始重新搜尋要快得多,因為我們只需要過濾相對少量記憶體中的專案,而不是再次掃描檔案系統。因此,隨打隨更的更新是即時發生的。
技巧 2:優先順序
第二個技巧是“優先順序”。如果任其執行,快速搜尋引擎最終會遍歷工作區中的所有檔案。但它會嘗試智慧地首先遍歷你可能更感興趣的檔案。我們這樣做的方式並不特別複雜。我們只是根據當前在編輯器中開啟的檔案來確定優先順序。“當前活動編輯器”被賦予最高優先順序。然後是其他編輯器中開啟的檔案。然後是與這些檔案位於相同資料夾中的檔案,依此類推。
這有兩個好處。首先,它使搜尋更快地返回有趣的結果。其次,它使更有趣的結果出現在列表的頂部。
要單獨安裝,你可以從 Eclipse Marketplace 獲取(搜尋“Quick Search”)。或者你可以直接從更新站點安裝。透過選單“Help >> Install New Software”開啟 Eclipse 安裝程式,並將更新站點 URL 貼上到對話方塊中(本文末尾)。然後只選擇“Eclipse Quicksearch”功能並點選“Install”按鈕。