sponsor Vim development Vim logo Vim Book Ad

LustyExplorer : Dynamic filesystem and buffer explorer

 script karma  Rating 662/225, Downloaded by 15541  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.