sponsor Vim development Vim logo Vim Book Ad

LustyExplorer : Dynamic filesystem and buffer explorer

 script karma  Rating 662/225, Downloaded by 16388  Comments, bugs, improvements  Vim wiki

created by
Stephen Bach
script type
*** Download the newest version of this plugin on Github: https://github.com/sjbach/lusty ***

LustyExplorer is a fast and responsive way to manage files and buffers in Vim.  It includes a filesystem explorer, a buffer switcher, and a buffer grep for searching through and switching between files and buffers quickly, all through a mostly common interface.

Short demo videos folks have made:


      Older stuff (pre v2.0 - we now use fuzzy matching instead of tab completion):


      :LustyBufferGrep (for searching through all open buffers)

      <Leader>lf  - Opens filesystem explorer.
      <Leader>lr  - Opens filesystem explorer at the directory of the current file.
      <Leader>lb  - Opens buffer explorer.
      <Leader>lg  - Opens buffer grep.

When one of the explorers is launched, a new window appears at bottom presenting a table of files/dirs or buffers, and in the status bar is a prompt:


As you type a name, the table updates using a fuzzy matching algorithm (or regex matching in the case of grep).  Press enter to open the selected match, <C-n>/<C-p> to select the next/previous match, or press <ESC> or <Ctrl-c> to cancel.

See the "Usage:" section of the script for other tricks and features.

If you like LustyExplorer, you may also like LustyJuggler: vimscript #2050

Development repository: http://github.com/sjbach/lusty
install details
Copy the plugin/ and autoload/ directories into your $HOME/.vim/ directory.

NOTE: This plugin requires Vim be compiled with Ruby interpretation.  If you do not currently have this functionality, see the "Install Details:" section of the script for directions to add it.

If adding Ruby is an issue for you, you may want to try LycosaExplorer, a Python port of this plugin: vimscript #3659

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
lusty-explorer-5.0.zip 5.0 2018-07-25 7.0 Stephen Bach Many minor fixes over the last six years.
lusty-explorer.vim 4.3 2012-02-25 7.0 Stephen Bach - Fixed some quoting bugs when invoking :LustyFilesystemExplorerStart. (Joel D. Elkins)
- Handle directory security restrictions in Windows more gracefully. (Joel D. Elkins)
- Hide "relativenumber" display in the explorer. (Göran Gustafsson)
lusty-explorer.vim 4.2 2011-11-25 7.0 Stephen Bach - Added arrow key navigation. (Giuseppe Rota)
- Fixed an "incompatible character encodings" error. (lilydjwg)
- Fixed a divide-by-zero error. (Toby O'Connell)
- Added g:LustyExplorerDefaultMappings configuration. (Göran Gustafsson)
lusty-explorer.vim 4.1 2011-04-29 7.0 Stephen Bach - Add Ctrl-B and Ctrl-F mappings to move to the next/previous column. (Thanks to lilydjwg)
- Allow exploring starting at arbitrary paths - :LustyFilesystemExplorer now accepts a path argument. (Thanks to Donald Curtis)
- Prevent unwanted highlighting in the display buffer. (Thanks to Jan Zwiener)
- Fix opening files with '%' in their names. (Thanks to lilydjwg)
lusty-explorer.vim 4.0 2010-12-17 7.0 Stephen Bach - New and improved fuzzy matching algorithm: Mercury. (Matt Tolton)
- Buffer Explorer: don't show unlisted buffers. (Thanks to Johannes Holzfuß)
- Align multi-byte CJK characters correctly in filenames. (Thanks to lilydjwg)
- Truncate prompt if longer than window width to avoid "press any key" message. (Thanks to Martin Wache)
- Save/restore window config better. (Thanks to robquant)
lusty-explorer.vim 3.1.1 2010-07-21 7.0 Stephen Bach Don't throw an error when looking up special non-file buffers.  (Thanks to Ben Boeckel)
lusty-explorer.vim 3.1.0 2010-06-28 7.0 Stephen Bach - Buffer grep: performance improvement.
- Buffer explorer: secondary sort by most-recently used.
lusty-explorer.vim 3.0 2010-06-26 7.0 Stephen Bach - New :LustyBufferGrep for searching through open buffers.
- Filesystem explorer: fixed a directory recursion highlighting bug.
lusty-explorer.vim 2.3.0 2010-03-28 7.0 Stephen Bach - Better matches window layout algorithm.
- Put code in its own namespace to play nicer with other Ruby plugins.
- Don't error when run in read-only mode.  (Thanks to Ali Asad Lotia)
- Don't error if a file is treated as a dir.
- Don't error when a single-quote is typed.
lusty-explorer.vim 2.2.3 2010-03-27 7.0 Stephen Bach Cygwin and Windows compatibility fixes.  (Thanks to Brett DiFrischia)
- Warn if &compatible mode is set.
- Windows: show matches when at root (i.e. C:/).
- Cygwin: workaround some missing POSIX stuff.
- Cygwin: don't freeze when exploring root (weird Ruby bug).
lusty-explorer.vim 2.2.2 2010-03-26 7.0 Stephen Bach Buffer explorer: fixed a spurious error message introduced in the previous release.  (Thanks to sowill)
lusty-explorer.vim 2.2.1 2010-03-26 7.0 Stephen Bach Performance improvements.
lusty-explorer.vim 2.2.0 2010-03-15 7.0 Stephen Bach - New keys: C-o -> open in horizontal split, C-v -> open in vertical split.  (Thanks to David Brown)
- Fix environment variable expansion.
- Rename launch commands, e.g. BufferExplorer -> LustyBufferExplorer.
lusty-explorer.vim 2.1.3 2010-03-04 7.0 Stephen Bach Fix an error message on some platforms introduced in the previous release.  (Thanks to sowill)
lusty-explorer.vim 2.1.2 2010-03-03 7.0 Stephen Bach - Fix performance over NFS.
- Fix portability with the updated Vim->Ruby data type conversion in devhead Vim.  (Thanks to Björn Winckler)
- Fix portability with Ruby 1.9.
lusty-explorer.vim 2.1.1 2009-10-13 7.0 Stephen Bach - Open files using relative paths for better readability in e.g. :ls. (Thanks to Bernhard Walle)
- Warn when fuzzyfinder_textmate is detected -- this plugin interacts poorly with LustyExplorer. (Thanks to Charl Matthee)
- Fix a minor highlighting bug.
lusty-explorer.vim 2.1.0 2009-06-10 7.0 Stephen Bach - Significant performance increase for directories with many files.
- Lower memory usage in directory memoization.
lusty-explorer.vim 2.0 2009-05-28 7.0 Stephen Bach The vast majority of these changes were contributed by Matt Tolton:
- Flex/fuzzy matching using the LiquidMetal algorithm:
- Buffer explorer: paths are hidden except to differentiate buffers of
  the same basename.
- New option:
- Filesystem explorer: directory contents are memoized
- New keys for the prompt:
    C-t: open selected entry in new tab
    C-n: select the next entry
    C-p: select the previous entry
    C-w: move one directory upward at prompt
    C-u: clear the prompt
- New keys specific to the filesystem explorer:
    C-r: refresh directory contents
    C-a: open all files in the current list
    C-e: create a new file with the given name
- Cursor will "hide" correctly when a filename includes a two-column
- GetLatestVimScripts compatibility.
- Faster implentation of columnize().  Thanks to Sami Samhuri.
- Fixed a declaration typo.  Thanks to Simo Salminen.
lusty-explorer.vim 1.4.3 2009-02-02 7.0 Stephen Bach - Definitively fix the bug of overwritten delete registers.
- Respect the 'wildignore' variable; g:LustyExplorerFileMasks still works, but is deprecated.
lusty-explorer.vim 1.4.2 2008-08-25 7.0 Stephen Bach Restore the unnamed (default) register after using the explorer.  Thanks to cho45.
lusty-explorer.vim 1.4.1 2007-11-04 7.0 Stephen Bach - When the explorer is cancelled, reset the previous buffer (b#) to the actual previous buffer.
- Fixed error when launching the explorer while editing a remote file through netrw.  Thanks to Bernhard Walle.
lusty-explorer.vim 1.4.0 2007-11-01 7.0 Stephen Bach - Filesystem explorer: added g:LustyExplorerFileMasks variable to hide certain types of files.
- Filesystem explorer: speed up for directories with many files.
- Added truncation indicator if there are more entries than can be displayed.
lusty-explorer.vim 1.3.1 2007-10-26 7.0 Stephen Bach Fixed memoization bug for recursing into directories with mixed case names.
lusty-explorer.vim 1.3.0 2007-10-25 7.0 Stephen Bach - Filesystem explorer now does variable ($FOO) expansion.
- Added some memoization for noticeable speed up on older hardware.
lusty-explorer.vim 1.2.6 2007-10-13 7.0 Stephen Bach Added compatibility for Windows, finally.  Please let me know if you have any problems.
lusty-explorer.vim 1.2.5 2007-10-05 7.0 Stephen Bach - Now deals correctly with unnamed buffers instead of spitting out an error.  Thanks to Rajendra Badapanda.
- Buffer explorer will now launch even if only a single buffer is open.
lusty-explorer.vim 1.2.4 2007-09-18 7.0 Stephen Bach - Pressing <TAB> will now open a buffer/file if it is the only entry.
- If <ENTER> is pressed when there are no matching entries, a new buffer will be created with the given name.
- <C-g> now behaves like <C-c> and <ESC>.
lusty-explorer.vim 1.2.3 2007-06-21 7.0 Stephen Bach Added g:LustyExplorerSuppressRubyWarning option for situations where the same Vim configuration is used over multiple machines, not all of which have Ruby installed.  Thanks to Bernhard Walle.
lusty-explorer.vim 1.2.2 2007-06-18 7.0 Stephen Bach Fixed filename truncation when sidescroll/sidescrolloff have been set.  Thanks to Bernhard Walle.
lusty-explorer.vim 1.2.1 2007-06-05 7.0 Stephen Bach - <C-h> now interpreted as backspace.  Thanks to Yuichi Tateno.
- Much improved handling of files/directories with special characters in their names.
lusty-explorer.vim 1.2.0 2007-06-02 7.0 Stephen Bach - Added :FilesystemExplorerFromHere command.  Thanks to Sergey Popov.
- Added highlighting to the prompt and cursor.
- Buffer explorer: added [+] indicator to dirty buffers.
- Many small fixes.
lusty-explorer.vim 1.1.2 2007-05-30 7.0 Stephen Bach - Filesystem explorer now does tilde (~) expansion.
- Fixed some Vim error messages for special characters in filenames/input.
- Internal refactoring.
lusty-explorer.vim 1.1.1 2007-05-17 7.0 Stephen Bach Recursing into directories with capital letters in their names using case-insensitive matching has been fixed.  Thanks to Raimon Grau.
lusty-explorer.vim 1.1.0 2007-05-15 7.0 Stephen Bach - Renamed from DynamicExplorer.
- Buffer explorer now orders by Most Recently Used.
- Buffer explorer now matches anywhere in name.
- Filesystem explorer highlights opened files.
dynamic-explorer.vim 1.0.1 2007-05-12 7.0 Stephen Bach - Allow opening files with spaces in their names.
- Fixed listing bug where the whole window width sometimes wasn't being utilized.
- The cursor is now moved off into a more inconspicuous corner.
- Syntax highlighting improved for listings with spaces or parens.
- Internal refactoring.
dynamic-explorer.vim 1.0 2007-05-08 7.0 Stephen Bach Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github