rff is a fast, simple fuzzy selector for the terminal with an advanced scoring algorithm and full UTF-8 support.
Pre-compiled binaries are available for common architectures, starting with version 0.3.0.
If you have a Rust toolchain installed, you can also build rff from source via Cargo:
$ cargo install rff
rff is a drop-in replacement for other fuzzy selection tools such as fzy or selecta.
Its interface is straightforward:
- pass it a set of choices on
STDIN - it will present a fuzzy selection interface to the user, and block until they make a selection or quit with
^C - it will print the user's selection on
STDOUT
As an example, you can say:
$ vim $(find . -type f | rff)
Which prompts the user to select a file in or below the current directory, and then opens the selected file in vim.
rff supports these keys:
^Nto select the next match^Pto select the previous match^Uto clear the search query^C,^D, andEscto exit without selecting a match
rff is currently based on fzy's scoring algoritm. For details on how this is better than most fuzzy finders, see fzy's ALGORITHM.md.