ウェブサイト検索

Fzf - Linux ターミナルからのクイックあいまいファイル検索


Fzf は、小型で非常に高速な汎用のクロスプラットフォーム コマンドライン ファジー ファインダーで、Linux および Windows オペレーティング システムでファイルをすばやく検索して開くのに役立ちます。依存関係がなく移植性があり、Vim/Neovim プラグイン、キー バインド、ファジー オートコンプリートをサポートする柔軟なレイアウトを備えています。

次の GIF は、その仕組みを示しています。

Fzf をインストールするには、fzf の Github リポジトリを任意のディレクトリに git clone し、Linux ディストリビューションに表示されているようにインストール スクリプトを実行する必要があります。

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
cd ~/.fzf/
./install

スクリプトを実行すると、ファジー オートコンプリート、キー バインドを有効にし、シェル構成ファイルを更新するように求められます。次のスクリーンショットに示すように、質問に対して y (はい) と答えます。

Fedora 26 以降およびArch Linux では、次のようにパッケージ マネージャーを介してインストールできます。

sudo dnf install fzf	#Fedora 26+
sudo pacman -S fzf	#Arch Linux 

fzf をインストールしたので、使用を開始できます。 fzf を実行すると、インタラクティブなファインダーが開きます。ファイルのリストを標準入力から読み取り、選択した項目を標準出力に書き込みます。

プロンプトに探しているファイルの名前を入力するだけです。見つかったら Enter をクリックすると、ファイルの相対パスが標準出力に出力されます。

fzf

あるいは、検索しているファイルの相対パスを名前付きファイルに保存し、cat コマンドや bcat などのユーティリティを使用してファイルの内容を表示することもできます。

fzf >file
cat file
OR
bat file

たとえば、find コマンドと組み合わせて使用することもできます。

find ./bin/ -type f | fzf >file
cat file

Bash および Zsh でファジー補完を使用する方法

ファイルとディレクトリのあいまい補完をトリガーするには、** 文字をトリガー シーケンスとして追加します。

cat **<Tab>

この機能は、コマンドラインで環境変数を操作するときに使用できます。

unset **<Tab>
unalias **<Tab>
export **<Tab>

同じことが、/etc/hosts および から読み取られる自動補完ホスト名の ssh および telnet コマンドにも当てはまります。 ~/.ssh/config

ssh **<Tab>

kill コマンドでも動作しますが、示されているようにトリガー シーケンスはありません。

kill -9 <Tab>

fzf を Vim プラグインとして有効にする方法

fzf を vim プラグインとして有効にするには、Vim 設定ファイルに次の行を追加します。

set rtp+=~/.fzf

fzf は積極的に開発されており、次のコマンドを使用して最新バージョンに簡単にアップグレードできます。

cd ~/.fzf && git pull && ./install

使用オプションの完全なリストを確認するには、man fzf を実行するか、その Github リポジトリ (https://github.com/junegunn/fzf) をチェックしてください。

こちらもお読みください: Silver Searcher – プログラマー向けのコード検索ツール

Fzf は、Linux でファイルを迅速に検索するための非常に高速な汎用ファジー ファインダーです。これには多くの使用例があり、たとえば、シェルのカスタム使用法を構成できます。ご質問やご意見がございましたら、以下のフィードバック フォームからお問い合わせください。