Tips

開発Tips(2026-01-22)

`fzf`は、ファイル、履歴、プロセス、Gitコミットなど、あらゆるリストをインタラクティブに検索できる強力なコマンドラインファジーファインダーです。あいまい検索に対応しており、少しの入力で目的の項目を素早く見つけ出すことができます。

技術・言語・ツール: fzf

fzfは、ファイル、履歴、プロセス、Gitコミットなど、あらゆるリストをインタラクティブに検索できる強力なコマンドラインファジーファインダーです。あいまい検索に対応しており、少しの入力で目的の項目を素早く見つけ出すことができます。

fzfでコマンド履歴やファイル検索を爆速化する

fzfは、標準入力から受け取ったリストに対して、インタラクティブなあいまい検索UIを提供します。シェルと統合することで、Ctrl+Rでコマンド履歴を検索したり、特定のディレクトリ以下のファイルを素早く見つけ出したりすることが可能です。

コード例:

  1. コマンド履歴の検索 (Ctrl+R で起動) fzfをインストールし、設定が完了していれば、シェルでCtrl+Rを押すだけで、過去に実行したコマンドの履歴をfzfのインタフェースで検索できます。

  2. ファイル検索

    # 現在のディレクトリ以下のファイルをfzfでインタラクティブに検索し、選択したファイルを開く
    # (例: vimで開くが、他のエディタやコマンドでも同様に利用可能)
    vim "$(find . -type f | fzf)"
    
    # Git管理下のファイルをfzfでインタラクティブに検索し、選択したファイルをgit addする
    git add "$(git ls-files | fzf)"

注意点やおすすめポイント:

  • 導入の容易さ: brew install fzf (macOS) や apt install fzf (Debian/Ubuntu) などで簡単にインストールできます。インストール後に表示される指示に従い、シェルスクリプトを実行することで、キーバインディングや補完が自動的に設定されます。
  • カスタマイズ性: FZF_DEFAULT_OPTS環境変数や~/.fzf.bash~/.fzf.zshなどの設定ファイルで、表示方法や検索オプションを細かくカスタマイズできます。
  • 幅広い活用: ファイルパス、プロセスID、Gitブランチ、SSHホスト名など、あらゆるテキストリストに対してfzfを適用できるため、日常のターミナル作業の効率を劇的に向上させます。特に、Ctrl+T (ファイル/ディレクトリ検索) や Alt+C (ディレクトリ変更) などの標準キーバインディングも非常に便利です。