Skip to content
fuzzy-completion for finding files
Branch: master
Clone or download
Latest commit e3b7901 Dec 19, 2013
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore initial import Jan 17, 2012
.travis.yml Use built-in test suite Dec 17, 2013
ff.1 man page: Reformat EXAMPLES section, other minor style changes. Dec 8, 2013
ff.c Add version number, 0.6.0. Dec 8, 2013
fuzzy-find.el Add an Emacs wrapper. Jan 17, 2012

fuzzy-find: fuzzy completion for finding files

ff searches a directory tree with basic fuzzy-completion. I wrote it because find -name "blah" only scans filenames (not their parent directories), and regular expressions for fuzzy completion are cumbersome.

Searching for "aeiou" will print any paths that match the RE .*a.*e.*i.*o.*u.*.

By default, ff searches recursively from the current directory, but its search root can be set with the -r option.

ff query strings are not regular expressions - characters such as '.' and '-' match literally. Any sections enclosed in '/'s will be required to match within the same path element, and the consecutive match character (default '=') toggles exact matching. (I chose '=' because it doesn't mean anything in basic REs and it's unshifted on most keyboards.)

See also: compound-completion


Just run make. I mean, it's one C file. The makefile is just ff: ff.c. Copy ff somewhere in your path.


ff aeiou matches both ~/and/the/first/one/used.txt and ~/after_the_furious_ultimatum.txt, because the characters 'a', 'e', 'i', 'o', and 'u' appear sequentially.

ff a/e/i/o/u only matches ~/and/the/first/one/used.txt, since the /s force each vowel to appear in its own directory element.

ff ae=iou= would only match ~/after_the_furious_ultimatum.txt, since it matches an 'a', then an 'e', then the =s specify a consecutive "iou" string.


ff [-diltR] [-c char] [-n count] [-r root] query
-c CHAR   char to toggle Consecutive match (default: '=')
-d        show Dotfiles
-D        only show directories
-h        print this Help
-i        case-Insensitive search
-l        follow Links (warning: no cycle detection)
-t        run Tests and exit
-r ROOT   set search Root (default: .)
-R        don't recurse subdirectories

Build Status

Build Status

You can’t perform that action at this time.