產品說明
Fzf (Fuzzy Finder) 是一款通用的命令列模糊搜尋工具。它的概念非常簡單:讀取任意輸入列表(List),讓使用者透過模糊搜尋的方式進行篩選,最後輸出選定的項目。然而,正是這種極簡的設計,讓它成為了 Unix 哲學「做一件事並把它做好」的典範。
與傳統的 grep 或 find 不同,Fzf 提供了 即時互動介面。當你輸入關鍵字時,搜尋結果會隨著你的擊鍵即時更新。它支援模糊比對演算法,這意味著你不需要精準記住檔名或指令,只需輸入幾個分散的字母(例如輸入 mcf 就能找到 MyConfigFirst.txt),它就能準確地將目標推送到你眼前。
核心特色:
- 極速效能:基於 Go 語言編寫,即使面對數十萬個檔案的列表,也能在毫秒內完成過濾與搜尋。
- 通用性 (Generic):它不只用於搜尋檔案,還能搜尋指令歷史、Git Commit、系統行程 (Process)、環境變數等任何文字列表。
- 高度可擴充:可以輕鬆整合進 Vim/Neovim、Tmux 或各種 Shell (Bash/Zsh/Fish) 中,甚至可以自訂預覽視窗 (Preview Window)。
- 無相依性:單一執行檔即可運作,無複雜的函式庫依賴。
常用指令
Fzf 通常不單獨使用,而是透過「管道 (Pipe)」與其他指令結合,或是使用內建的 Shell 快捷鍵。
啟動與基礎操作
# 基礎用法:將 find 的結果傳給 fzf 進行選擇
find . -type f | fzf
# 選擇檔案並使用 vim 開啟 (常用組合技)
vim $(fzf)
# 啟用預覽視窗 (需安裝 bat 或 cat)
fzf --preview 'bat --style=numbers --color=always {}'
| 按鍵 | 功能說明 | 備註 |
|---|---|---|
| Ctrl-r | 搜尋指令歷史 (History) | 取代傳統 Shell 的搜尋功能,視覺化選擇過去執行過的指令 |
| Ctrl-t | 搜尋檔案 (File) | 在指令列中快速插入檔案路徑 |
| Alt-c | 切換目錄 (Change Dir) | 搜尋目錄並直接 cd 進入 |
| Enter | 確認選擇 | 輸出選定的項目並結束 |
| Esc / Ctrl-c | 取消 / 離開 | 不選擇任何項目並結束 |
| Tab | 多重選取 (Multi-select) | 標記多個項目 (需搭配 -m 參數啟動) |
| Ctrl-j / Ctrl-k | 移動游標 | 向下 / 向上移動選擇項目 |
進階技巧:自訂工作流
互動式 Git 檢視:
你可以寫一個簡單的腳本,用 Fzf 來瀏覽 Git Log 並預覽每一次 Commit 的內容:git log --oneline --color=always | fzf --ansi --preview 'git show {+1} --color=always'搜尋並砍掉 Process:
結合ps與kill,製作一個互動式的行程殺手:ps aux | fzf | awk '{print $2}' | xargs kill整合 Shell 配置:
安裝後,建議在.bashrc或.zshrc中啟用 Key Bindings,這樣就能直接使用Ctrl-r(搜尋歷史) 與Ctrl-t(搜尋檔案) 等強大功能,這將徹底改變你在終端機的操作習慣。
操作介面




