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をクリックすると、ファイルの相対パスが stdout に出力されます。

$ 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プラグインとして有効にする方法

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

set rtp+=~/.fzf

fzf は現在開発中で、次のコマンドを使用して簡単に最新バージョンにアップグレードできます。

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

使用オプションの全リストを見るには、 man fzf を実行するか、Githubリポジトリをチェックしてください。

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