Skip to content

Fzf

終端機模糊搜尋神器

軟體分類 系統工具 / 搜尋工具
開發廠商 Junegunn Choi
Stars
0
Forks
0
License
MIT
Version
v0.52.0
Update
OS

產品說明

Fzf (Fuzzy Finder) 是一款通用的命令列模糊搜尋工具。它的概念非常簡單:讀取任意輸入列表(List),讓使用者透過模糊搜尋的方式進行篩選,最後輸出選定的項目。然而,正是這種極簡的設計,讓它成為了 Unix 哲學「做一件事並把它做好」的典範。

與傳統的 grepfind 不同,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
    結合 pskill,製作一個互動式的行程殺手:

    ps aux | fzf | awk '{print $2}' | xargs kill
    
  • 整合 Shell 配置
    安裝後,建議在 .bashrc.zshrc 中啟用 Key Bindings,這樣就能直接使用 Ctrl-r (搜尋歷史) 與 Ctrl-t (搜尋檔案) 等強大功能,這將徹底改變你在終端機的操作習慣。


操作介面