fzf(fuzzy finder)は、一言で言えば「コマンドライン用の高性能な検索フィルター」です。膨大なリストの中から、あいまい検索(部分一致や並び替え)で目的のものを爆速で見つけ出すことができます。
zshを使っている開発者にとって、fzf はターミナル作業の快適さを一段階引き上げる「魔法の杖」のようなツールです。主要な機能と設定方法を整理して解説します。
1. 基本的な考え方: コマンド | fzf
fzf 単体ではあまり使いません。基本は他のコマンドの出力をパイプで受け取り、結果を選択して返します。
# カレントディレクトリのファイルを選んで表示する
find . -type f | fzf
これだけだと、選んだファイル名が標準出力に出るだけですが、これを他のコマンドに渡すことで真価を発揮します。
2. zshで絶対に使うべき「3つのショートカット」
zshの設定ファイル(.zshrc)に fzf の初期化設定が書かれていれば、以下の強力なショートカットが即座に使えます。
| キー | 機能 | 説明 |
Ctrl + r | 履歴検索 | コマンド履歴をあいまい検索。デフォルトの検索より100倍使いやすいです。 |
Ctrl + t | ファイル検索 | ファイル名を探して、現在のカーソル位置にそのパスを入力します。 |
Alt + c | ディレクトリ移動 | フォルダを探して、選択した瞬間に cd します。 |
[!TIP]
もしこれらが動かない場合は、
~/.zshrcにsource <(fzf --zsh)(またはインストールパスに応じた設定)が記述されているか確認してください。
3. おすすめのカスタマイズ設定
.zshrc に設定を追加することで、見た目や機能をさらに強化できます。
見た目をリッチにする
デフォルトでは全画面ですが、下半分に表示させると作業しやすくなります。
# 下40%に表示、ボーダーを付ける、並び順を逆転させる
export FZF_DEFAULT_OPTS='--height 40% --reverse --border'
プレビュー機能を使う
ファイルを探している時に、右側に中身を表示させることができます(bat コマンドを入れていると綺麗に見えます)。
# Ctrl + t でファイルを探すときに中身をプレビュー
export FZF_CTRL_T_OPTS="--preview 'bat --color=always --line-range :50 {}'"
4. 開発現場で役立つ活用例
エンジニアとしての日常業務で役立つ具体的なコマンド例です。
Dockerコンテナを一括停止・選択
# 起動中のコンテナを選んで停止する
docker stop $(docker ps | fzf -m | awk '{print $1}')
-m オプションを付けると、Tabキーで複数選択が可能になります。
Gitブランチの切り替え
# ブランチを選んでチェックアウト
git checkout $(git branch | fzf)
fd や ripgrep との組み合わせ
標準の find は遅いので、高速な fd (ファイル検索) や rg (中身検索) と組み合わせるのが鉄板です。
# fd を使って爆速で検索
export FZF_DEFAULT_COMMAND='fd --type f'
5. 設定が反映されているか確認
まだ導入したばかりであれば、以下のコマンドで一発設定するのが一番確実です。
# fzfのインストールディレクトリにあるスクリプトを実行
$(brew --prefix)/opt/fzf/install
# または
/usr/share/doc/fzf/examples/key-bindings.zsh # 環境によりパスは異なります
fzf は「自分でスクリプトを組んで、自分専用の検索ツールを作る」のが醍醐味です。まずは Ctrl + r の快適さに慣れることから始めてみてください。


コメント