Tips
fzfがインストールされていれば、Ctrl+Rで自動的に有効になります。
`fzf` は、コマンドラインで強力な「ファジー検索」を可能にする汎用的なインタラクティブフィルターです。大量のファイルパス、コマンド履歴、Gitブランチなどから目的の項目を素早く見つけ出し、選択することで、開発作業の効率を劇的に向上させます。
技術・言語・ツール: fzf
fzf は、コマンドラインで強力な「ファジー検索」を可能にする汎用的なインタラクティブフィルターです。大量のファイルパス、コマンド履歴、Gitブランチなどから目的の項目を素早く見つけ出し、選択することで、開発作業の効率を劇的に向上させます。
シェル履歴からコマンドを素早く見つける
過去に実行した膨大なコマンド履歴の中から、部分的なキーワードでインタラクティブに検索し、目的のコマンドを簡単に見つけて再実行する方法です。Ctrl+R(デフォルトのreverse-i-search)よりも柔軟で強力な検索が可能です。
コード例:
fzfをインストールすると、多くのシェルでデフォルトでCtrl+Rがfzfを使った履歴検索に置き換わります。
ターミナルでCtrl+Rを押すと、履歴が一覧表示され、キーワードを入力するだけでファジー検索が開始されます。
# fzfがインストールされていれば、Ctrl+Rで自動的に有効になります。
#
# 例えば、「docker run」と打ったけど、どのオプションを使ったか覚えていない場合...
#
# 1. ターミナルで Ctrl+R を押す
# 2. プロンプトが表示されたら「docker run my-app」のように部分的に入力
#
# fzfはマッチする履歴をリアルタイムで表示し、上下キーで選択できます。
# Enterを押すと、選択したコマンドがプロンプトに挿入されます。
注意点やおすすめポイント:
- インストール:
brew install fzf(macOS),sudo apt install fzf(Debian/Ubuntu) などで簡単にインストールできます。インストーラーがシェル設定も自動で行ってくれます。 - ファイル検索:
fzfはコマンド履歴だけでなく、find . -type f | fzfのようにパイプで渡されたリストをインタラクティブにフィルタリングする汎用ツールとしても使えます。例えば、特定のディレクトリ内のファイルを開く際にvim $(fzf)などと組み合わせると非常に便利です。 - Gitとの連携:
git checkout $(git branch -a | fzf)でブランチを素早く切り替えたり、git add $(git status --short | fzf -m)でステージングするファイルを選んだりすることも可能です。 - カスタマイズ: 環境変数や設定ファイル (
~/.fzf.bash,~/.fzf.zsh) でキーバインドや表示オプションを細かくカスタマイズできます。