Tips

現在のディレクトリ以下のファイルをfzfで検索し、選択したファイルをvimで開く

`fzf`は、コマンドラインで強力な「あいまい検索」を提供する汎用的なファインダーです。ファイル、ディレクトリ、コマンド履歴、Gitブランチなど、あらゆるリストから素早く目的の項目を見つけ出し、選択することができます。これにより、コマンドラインでの作業効率が劇的に向上します。

技術・言語・ツール: fzf

fzfは、コマンドラインで強力な「あいまい検索」を提供する汎用的なファインダーです。ファイル、ディレクトリ、コマンド履歴、Gitブランチなど、あらゆるリストから素早く目的の項目を見つけ出し、選択することができます。これにより、コマンドラインでの作業効率が劇的に向上します。

インタラクティブなあいまい検索でファイルや履歴を爆速発見

コマンドの出力やリストをfzfにパイプで渡すことで、インタラクティブなUIで目的のものを検索・選択できます。特にファイルパスやコマンド履歴の入力時にその真価を発揮し、膨大な候補の中から瞬時に目的の項目を見つけ出すことが可能です。

# 現在のディレクトリ以下のファイルをfzfで検索し、選択したファイルをvimで開く
vim $(fzf)

# Gitのローカル・リモートブランチをfzfで検索し、選択したブランチに切り替える
git checkout $(git branch -a | fzf --height 40%)

# findで検索したディレクトリをfzfで絞り込み、cdで移動する
cd $(find . -type d | fzf)

# コマンド履歴をfzfで検索(シェルのキーバインド設定により Ctrl-R で利用可能)
# (fzfがインストールされ、シェル設定がされている場合)
# Ctrl-R を押して検索モードに入り、キーワードを入力

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

  • シェルのキーバインド: fzfをインストールすると、bashzshの設定ファイルにsourceを追加することで、Ctrl-T (ファイル検索)、Ctrl-R (コマンド履歴検索)、Alt-C (ディレクトリ検索) といった便利なキーバインドが利用可能になります。これにより、既存の作業フローにシームレスにfzfを組み込めます。
  • FZF_DEFAULT_COMMAND: 環境変数FZF_DEFAULT_COMMANDを設定することで、fzfを引数なしで実行した際のデフォルトの候補リストをカスタマイズできます。例えば、agrgと組み合わせて、リポジトリ内のファイルを高速に検索対象にする、といった使い方ができます。
  • 汎用性: lsfindgit branchpsなど、リストを出力するあらゆるコマンドと組み合わせることができ、その用途は無限大です。日々の開発作業で「あれ、どこだっけ?」と思ったときにfzfを活用することで、大幅な時間短縮が見込めます。