

fzf 是一個通用的命令行模糊搜尋工具,一個互動式的 Unix 篩選器。它允許使用者使用模糊匹配演算法快速查找檔案、命令歷史記錄、進程、主機名稱等。與 find 或 grep 等傳統工具不同,fzf 提供互動式、實時的篩選體驗,使其在從長列表中導航和選擇項目時顯著更快、更有效率。該工具的核心價值在於它能夠透過減少搜尋和選擇項目所花費的時間,大幅提高命令行生產力。fzf 脫穎而出,因為它速度快、介面互動,並且與各種命令行工具和編輯器無縫整合。它使用 Go 構建,確保高效能和最少的依賴性。開發人員、系統管理員以及任何經常使用終端機的人都將從 fzf 中受益,簡化他們的工作流程並節省寶貴的時間。
fzf 的核心功能是其模糊匹配演算法,它允許使用者透過輸入模式快速查找項目,即使模式包含拼寫錯誤或省略字元。此演算法使用基於字元匹配和接近度的評分系統,實時提供相關結果。這比精確匹配或基於正則表達式的搜尋快得多,尤其是在大型列表中。
fzf 支援所選項目的實時預覽。使用 `--preview` 選項,您可以在 fzf 介面中直接顯示檔案的內容、命令的輸出或任何其他相關資訊。此功能對於在採取操作(例如開啟檔案或執行命令)之前快速驗證正確的選擇非常寶貴。
fzf 與各種 shell(Bash、Zsh、Fish)無縫整合,提供按鍵綁定(例如,Ctrl+r 用於命令歷史記錄)和自動完成。此整合顯著增強了可用性,使其更容易從命令行直接調用 fzf 並使用其功能。整合是透過載入 shell 專用腳本來實現的。
fzf 提供了廣泛的自定義選項,以根據您的偏好調整介面。您可以自定義佈局、顏色和按鍵綁定以匹配您的工作流程。這包括預覽視窗、搜尋提示和結果顯示的選項。自定義是透過命令行標誌和環境變數實現的。
fzf 與流行的文字編輯器(如 Vim 和 Neovim)很好地整合。這允許使用者使用 fzf 進行檔案導航、緩衝區切換和其他與編輯器相關的任務。此整合通常涉及利用 fzf 功能來增強編輯器功能的插件或配置。
fzf 可以處理多行項目,這對於瀏覽日誌流或處理複雜資料等任務至關重要。這意味著 fzf 正確顯示和篩選跨越多行的項目,確保在匹配過程中考慮整個項目。這在處理結構化資料或冗長輸出時特別有用。
brew install fzf,在 Debian/Ubuntu 上使用 apt install fzf,或在 CentOS/RHEL 上使用 yum install fzf)。2. Shell 整合: 在 shell 設定檔(例如 .bashrc、.zshrc)中載入 fzf shell 整合腳本,以啟用按鍵綁定和自動完成。這通常在安裝期間自動完成,但您可能需要新增 source ~/.fzf/completion.bash 和 source ~/.fzf/key-bindings.bash。3. 基本用法: 使用 fzf 從標準輸入篩選列表。例如,ls | fzf 將允許您互動式地篩選 ls 的輸出。4. 檔案查找: 將 fzf 與 find 命令一起使用以快速定位檔案。例如,find . -print0 | fzf --read0 --print。5. 命令歷史記錄: 按下 Ctrl+r(如果已啟用按鍵綁定)以使用 fzf 搜尋您的命令歷史記錄。6. 自定義: 使用命令行選項(例如 --preview、--layout)和環境變數(例如 FZF_DEFAULT_COMMAND)自定義 fzf 的行為。開發人員使用 fzf 快速導航專案目錄並在他們的編輯器中開啟檔案。他們輸入部分檔案名稱,fzf 實時篩選檔案列表,允許他們以最少的打字和滾動來選擇所需的檔案。這大大加快了開發工作流程。
系統管理員使用 fzf 搜尋他們的命令歷史記錄。透過按下 Ctrl+r,他們可以輸入關鍵字或部分命令,fzf 會立即篩選歷史記錄,使他們能夠快速重新執行過去的命令,而無需手動滾動或重新輸入。
使用者使用 fzf 管理正在運行的進程。他們可以使用 fzf 篩選 `ps` 或 `top` 的輸出,允許他們透過名稱或其他條件快速識別和終止特定進程。這對於管理資源密集型應用程式特別有用。
開發人員利用 fzf 在 Git 分支之間切換。他們可以使用 `git branch | fzf` 互動式地篩選分支列表並選擇所需的 checkout 分支。這簡化了 Git 工作流程,使其更快且不易出錯。
使用者利用 fzf 透過 SSH 連接到遠端伺服器。他們可以使用 fzf 篩選他們的 `~/.ssh/config` 或 `~/.ssh/known_hosts` 檔案的內容,允許他們快速選擇所需的主機名稱並建立 SSH 連接。
開發人員透過加快他們的命令行工作流程而受益於 fzf。他們可以快速導航檔案、搜尋命令歷史記錄和管理進程,從而提高生產力並減少開發時間。模糊匹配演算法對於具有大型程式碼庫的專案特別有用。
系統管理員使用 fzf 有效地管理伺服器和系統。他們可以快速查找檔案、監控進程和執行命令,從而節省時間並提高他們排除故障和維護系統的能力。互動式篩選對於大型資料集非常寶貴。
DevOps 工程師將 fzf 用於管理部署、與容器化環境互動和自動化任務等任務。該工具能夠快速篩選和選擇列表中的項目對於簡化複雜操作和提高效率至關重要。
花費大量時間在終端機中的進階使用者發現 fzf 對於提高他們的生產力至關重要。該工具的速度、靈活性和自定義選項允許他們根據自己的特定需求定制他們的命令行體驗,使他們更有效率。
開源(MIT 許可證)。免費使用。