Skip to content

stewart/rff

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
ci
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

rff

rff is a fast, simple fuzzy selector for the terminal with an advanced scoring algorithm and full UTF-8 support.

Installation

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

Usage

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:

  • ^N to select the next match
  • ^P to select the previous match
  • ^U to clear the search query
  • ^C, ^D, and Esc to exit without selecting a match

Scoring

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.