hrhr49 blog

fzfの使い方

2020-09-19 fzf tool CLI

fzfとは

インクリメンタルにあいまい検索で絞り込みを行うためのコマンドラインツール。 GitHubのページ

以下の動画を見てもらえば、どういったものかわかりやすい。

fzf コマンドは、標準入力に受け取ったテキストを絞り込んだ結果を標準出力に流す。 そのため、他のコマンドと簡単に連携できるのでとても強力。

なお、標準入力無しでコマンドを実行した際は、 (再帰的に)現在のディレクトリ配下のファイルすべて の中から候補を絞り込むことができる。

上記の例では、 fzf で絞り込んだファイルをvimで開いている。

インストール

homebrewもしくはlinuxbrewでインストールする場合

1brew install fzf
2
3# シェルでのキーバインドや補完機能を使用する場合は以下を実行する
4$(brew --prefix)/opt/fzf/install

aptを使う場合

Ubuntu バージョン20以上だと、aptでインストールもできるようになっている。 ただ、こっちだとバージョンが古くなりがちなので最新のものを使いたい場合はbrewの方を使う。

1sudo apt install fzf

キーバインドなどを有効化したいときにはbashrcやzshrcに以下を記載する。

bashの場合は~/.bashrcに以下を追加。

1source /usr/share/doc/fzf/examples/completion.bash
2source /usr/share/doc/fzf/examples/key-bindings.bash

zshの場合は~/.zshrcに以下を追加。

1source /usr/share/doc/fzf/examples/completion.zsh
2source /usr/share/doc/fzf/examples/key-bindings.zsh

参考: https://github.com/junegunn/fzf/issues/1866

キーバインド

  • <C-t> : ディレクトリやファイル名補完
  • <C-r> : コマンド履歴
  • <M-c> : 選択したディレクトリへcd

検索に使える特殊記号

  • 'hoge : hogeを含む文字列
  • ^hoge : hogeが先頭にある文字列
  • hoge$ : hogeが末尾にある文字列
  • !hoge : hogeを含まない文字列
  • !^hoge : hogeが先頭にない文字列
  • !hoge$ : hogeが末尾にない文字列

vimプラグイン

fzf自体vimプラグインになっている。 それに加えてfzf.vimというvimプラグインが用意されている。 この両方をインストールすれば、vimでいろいろなものを絞り込むことができる。

1Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
2Plug 'junegunn/fzf.vim'

fzf.vimのGitHubのページ

参考

もう少し詳しいことを知りたい場合は、以下の記事が参考になる。


Categories: