LustyExplorer is a fast and responsive way to manage files and buffers. It includes both a filesystem explorer and a buffer switcher through a common interface.

It’s like find-file crossed with iswitchb or InteractivelyDoThings, but with a larger and more easily readable dedicated window for matches instead of the minibuffer.

Here's a 3.4 MB animated gif showing it in action (Note: 2.0+ uses fuzzy matching instead of tab completion)

After copying the file into your load-path, put this in your .emacs:

(require 'lusty-explorer)

Launch the explorer with one of these commands:

M-x lusty-file-explorer M-x lusty-buffer-explorer

As you type a name, the list updates using a fuzzy matching algorithm. Press RET or TAB to select the highlighted match, or C-n / C-p to highlight the next/previous match

LustyExplorer is based on the Vim plugin of the same name.

Contents Download Changelist Discussion

Download

Lisp:lusty-explorer.el

Development repository

Changelist

Version 2.4:

Add defcustom lusty-idle-seconds-per-refresh - wait for key presses in lusty-file-explorer for (by default) 50 milliseconds before initiating match window updates. Makes things more manageable for fast typers navigating directories having many thousands of files. Thanks to René Kyllingstad.

- wait for key presses in for (by default) 50 milliseconds before initiating match window updates. Makes things more manageable for fast typers navigating directories having many thousands of files. Thanks to René Kyllingstad. Consider buffer use order when determining the order of buffer matches in the window. By default, has a 10% effect on weighting. Fiddle with lusty-buffer-MRU-contribution .

. Like iswitchb , give match priority to buffers not currently visible.

Version 2.3:

For iswitchb congruity, C-s / C-r : select next/previous match.

congruity, / : select next/previous match. Buffer explorer: put current buffer at end of matches list for more intuitive switching. Thanks to Alex Schroeder.

Buffer explorer: sort first by fuzzy matching score, then by most recently used.

More intuitive action on RET key press, to differentiate from TAB . Thanks to René Kyllingstad.

key press, to differentiate from . Thanks to René Kyllingstad. Minor performance improvement.

Version 2.2:

New keys: C-f : move highlight to next column. C-b : move highlight to previous column. C-x e : open a new buffer with current name. C-x d : launch dired at the currently viewed directory.

Fix processing of completion-ignored-extensions .

. Minor performance improvement.

Version 2.1:

Vast performance improvement.

Fixed sort order of matches.

Smarter match layout algorithm; faster, and makes better use of available space.

Print TRUNCATED indicator reliably.

Determine maximum window height reliably.

List buffers in MRU order when first presented.

Version 2.0:

Introduced a flex/fuzzy matching algorithm, LiquidMetal.

Added custom keymap and setup hook.

Faster implementation of lusty-columnize. Thanks to Volkan Yazici.

Catch an error when enlarging the completions buffer.

Many small changes.

Version 1.0.2:

Fixed a bug in completion-ignored-extensions matching. Thanks to Hugo Schmitt.

Version 1.0.1:

Made the completion window more useable in multi-window configurations. Thanks to Jan Rehders.

Fixed two bugs in computing optimal completion content layout.

Discussion

CategoryBufferSwitching CategoryFiles CategoryCompletion