【エフゼットエフ】

fzf(ファジーファインダー) とは?

💡 うろ覚えでも見つかる、ターミナルの検索魔法
📌 このページのポイント
fzf — ファジーファインダーの絞り込み ファイル一覧 README.md package.json src/index.ts src/utils.ts src/config.ts test/index.test.ts docs/setup.md … 他 1,200件 idx あいまい検索 「idx」で部分一致 絞り込み結果 src/index.ts test/index.test.ts ← マッチ箇所をハイライト ✦ 入力順序を問わない曖昧マッチ ✦ パイプで任意のリストを絞り込み可能 cat list.txt | fzf / history | fzf / git log | fzf
fzf のファジー検索のイメージ
ひよこ ひよこ

ファイルを探すのにいちいちパスを打つのが大変なんだけど…

ペンギン先生 ペンギン先生

fzfを使えば数文字打つだけでファイルをあいまい検索できるよ。例えば`main.ts`を探したい時に`mnts`と打てば候補が絞り込まれるんだ

ひよこ ひよこ

あいまい検索ってどういうこと?

ペンギン先生 ペンギン先生

文字が連続してなくてもマッチするんだよ。`src/components/Button.tsx`を探したい時に`cmpbtn`と打てばヒットする。うろ覚えでも見つかるのがfzfの良さだね

ひよこ ひよこ

コマンド履歴の検索もできるの?

ペンギン先生 ペンギン先生

fzfをインストールするとCtrl+Rが超強力になるよ。過去に実行したコマンドをあいまい検索できて、dockerとかgitとか数文字打つだけで目的のコマンドが見つかるんだ

ひよこ ひよこ

他のコマンドとも組み合わせられる?

ペンギン先生 ペンギン先生

パイプで何でも繋げられるよ。`git branch | fzf`でブランチを選んだり、`ps aux | fzf`でプロセスを選んだり。fzfをセレクターとして使う応用は無限大なんだ

ひよこ ひよこ

エディタとも連携できるの?

ペンギン先生 ペンギン先生

vimのfzf.vimプラグインは定番だよ。ファイルを開く、バッファを切り替える、grepした結果から選ぶ、全部fzfのあいまい検索でできる。一度使うと手放せなくなるツールだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「fzf」って出てきたら「ターミナルであいまい検索ができるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「fuzzy finder」 = あいまい検索ツール
💬 fuzzyは「ぼやけた・あいまいな」、finderは「見つけるもの」。完全一致じゃなくてもヒットするからfuzzyなんだよ
← 用語集にもどる