fzfの使い方
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'
参考
もう少し詳しいことを知りたい場合は、以下の記事が参考になる。
Categories: