daisuzz.log

fzfでも厳密な検索をしたい

https://github.com/junegunn/fzf を使っているが、コマンドのhistoryを検索するときにあいまい検索が有効になっていると、検索結果にノイズが多く表示されて使いづらいケースがある。

例えば「npm」と検索をした場合は、以下のようにしたい。

  • npm xxx」や「xxxxnpm」といった文字列は検索結果に表示させたい
  • npx xxx」や「xxxn xxxp xxxm」といった文字列はノイズになるので表示させたくない

fzfでは、'^などいくつかの記号を使って検索をすることで厳密な検索を実現できる。 (https://github.com/junegunn/fzf#search-syntax にサポートしている厳密な検索がまとまっている)

ただ、こういった記号を覚えて毎回検索するときにつけるのは面倒。

fzfではコマンドオプションとして--exactが用意されており、これを使うことで常に厳密な検索結果を表示させることができる。

デフォルトで有効にしたいので自分は以下のように設定している。

export FZF_DEFAULT_OPTS="--exact --reverse --no-sort --no-hscroll --preview-window=down"