Open-source project
jlanzarotta/bufexplorer avatar
jlanzarotta/bufexplorer

bufexplorer gives Vim a sortable buffer list and four ways to open it

BufExplorer Plugin for Vim

550 stars97 forksVim ScriptBSD-3-Clause

At a glance

What is it?
bufexplorer is a long-lived Vim plugin that replaces the buffer list with a window you can sort, filter and open from, with separate mappings for a normal open, a toggle, a horizontal split and a vertical split, and support for opening a buffer in a tab. It is BSD-3-Clause licensed, published on vim.org as script 42, and its Vim9 rewrite lives in a separate file.
Who is it for?
Adopt bufexplorer if you keep many buffers open and spend time hunting through the default buffer list, and you want the list to be sortable and to open the buffer where you want it. Do not adopt it if your workflow relies on the native :ls list or on fuzzy finding buffers, since this is a list you read rather than a fuzzy matcher.
Can I use it commercially?
Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 44 days ago.
What is it written in?
Mainly Vim Script, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Four mappings, and they do different things

bufexplorer is a plugin for Vim that lets you switch between buffers using one of four default public interfaces. The mappings are listed with the leader key as <Leader>:

vim
`\<Leader\>be` normal open
`\<Leader\>bt` toggle open / close
`\<Leader\>bs` force horizontal split open
`\<Leader\>bv` force vertical split open

The distinction between them is worth knowing before you bind them. The first opens the explorer normally. The second toggles it open and closed. The third forces a horizontal split open, and the fourth forces a vertical split open.

That last pair is the reason to use this plugin over the built-in :ls output. The default Vim buffer list is printed into the current window, so opening a buffer from it replaces your file view, and there is no way to ask for the list to appear in a split. bufexplorer opens its own window, so you can keep your file visible while you pick.

The example in the documentation shows the leader key assigned to Space, which is a common choice and a good one to be aware of, since it means the four mappings are space followed by be, bt, bs or bv.

Moving around, and opening a buffer where you want it

Once the bufexplorer window is open you use the normal movement keys, hjkl, to move around, and then press Enter or left-click to select the buffer to open.

There are two ways to open a buffer in a new tab instead, either Shift-Enter or t. The documentation is specific about the behaviour in that case: if the buffer is already in another tab, bufexplorer can switch to that tab automatically for you.

That is the feature that makes the plugin work with a multi-tab layout. Without it, opening a buffer in a tab that already holds it would create a duplicate tab, and you would end up with the same file open in several tabs. The plugin checks and switches instead, which is a small behaviour that removes a common annoyance.

The rest of the details, including the exact key bindings and the configuration options, are in the VIM help that ships with the plugin, which the documentation repeatedly points to rather than duplicating.

Five sort orders, and deleting a buffer from the list

The options are small but they cover the things that actually annoy people about buffer lists.

The list can be displayed in several sort orders. Most Recently Used is the default. The others are buffer number, file name, file extension and full file path name.

The MRU default is the right choice, because the buffer you most likely want is usually the one you touched last, and it is the ordering that the built-in :ls does not give you by default. The file extension ordering is the one that helps when you are working across a project and want to see all the templates together, and full path is the one that helps when you have several files with the same name in different directories.

The list also offers the option to delete a buffer from the list, which is genuinely useful given the sorting. A buffer you no longer need can be removed from the window without hunting for the command to wipe it.

Again, the documentation defers the configuration option names and the exact behaviour to the VIM help, which is a sensible division of labour for a plugin with this many small switches.

Four plugin managers, documented separately

The installation section covers four plugin managers and one manual route, and each is a couple of lines.

For Vundle you add the plugin declaration to your .vimrc:

vim
        Plugin 'jlanzarotta/bufexplorer'

and then run :BundleInstall. For NeoBundle the declaration is different:

vim
        NeoBundle 'jlanzarotta/bufexplorer'

followed by :NeoBundleInstall. For Plug it is:

vim
        Plug 'jlanzarotta/bufexplorer'

followed by :PlugInstall. And for Pathogen there is no configuration line at all, just a clone into the bundle directory:

bash
        git clone https://github.com/jlanzarotta/bufexplorer.git ~/.vim/bundle/bufexplorer.vim

The manual route is the one that catches people out. You take the zip file from vim.org, unzip it, and copy the plugin into your vimfiles plugin directory and the text file into your vimfiles doc directory. If you do it that way, you have to generate the help tags yourself by executing :helptag <your runtime directory>/doc, and only then can you read the manual with :help bufexplorer.

That extra step is the price of not using a plugin manager, and it is why the four manager routes come first.

A Vim9 rewrite sitting next to the classic plugin

The repository layout shows a plugin that has been modernised without dropping the old path. At the top level there is bufexplorer_vim9.vim, and alongside it are the plugin directory, the doc directory, the syntax directory, a how_to_release.txt and a release.bat.

The Vim9 file is the interesting part. Vim9 script is the newer, faster dialect that compiles ahead of execution, and a plugin keeping a separate Vim9 implementation alongside the classic one lets users on newer Vim get the faster path without the classic users losing anything. The syntax directory also tells you the plugin highlights its own buffer list.

The release tooling is worth noting too. A release.bat and a how_to_release.txt sitting in the root means the publishing process is a documented script rather than a set of remembered steps, and this is a plugin whose versioning goes back far enough that the process has been repeated many times.

The release history is long and steady. The tags are 7.14.0 from 2026-03-17, 7.13.0 from 2025-08-19 and 7.12.1 from 2025-07-02, and the last push was on 2026-09-08, so the plugin is still being maintained after more than two decades.

Distributed through vim.org as script 42

The plugin has its own listing on vim.org, at the script page with id 42, and the documentation points there as well as to the GitHub repository. The number itself is a marker of how established the plugin is: it was one of the first scripts submitted to the site.

That distribution route still matters for a different reason. The vim.org listing is what gives you the zip file for the manual install, and it is what a user on a locked-down machine with no git access will reach for. The GitHub repository is where the source and the issues live.

The licence is BSD-3-Clause, and the licence text in the repository is the standard three clause BSD, with a copyright line reading Copyright (c) 2001-2025, Jeff Lanzarotta. The third clause refers to the name of the organisation and the names of its contributors, and in the copy in the repository that organisation is still written as a placeholder, {organization}, which suggests the file has been carried over from a template rather than fully filled in.

Practically, the terms are permissive: redistribution in source and binary form is permitted with or without modification, provided the copyright notice and conditions are retained, and the software is provided as is without warranty.

Editorial conclusion

Adopt bufexplorer if you keep many buffers open and spend time hunting through the default buffer list, and you want the list to be sortable and to open the buffer where you want it. Do not adopt it if your workflow relies on the native :ls list or on fuzzy finding buffers, since this is a list you read rather than a fuzzy matcher. Before you install, check three things: that the default mappings fit your leader key, since the plugin ships with <Leader>be, bt, bs and bv and you will have to remap them if you have already used those, that your plugin manager is one of the four documented, and that you have a Vim new enough for the Vim9 version of the file, since the repository ships both the classic plugin and bufexplorer_vim9.vim.

Frequently asked questions

How do I install bufexplorer in Vim?

It is documented for Vundle, NeoBundle, Plug and Pathogen, or manually from the zip file on vim.org. The manual route requires copying the plugin and the doc file into your runtime directories and then generating help tags with :helptag <your runtime directory>/doc before :help bufexplorer works.

What are the default bufexplorer key mappings?

With the leader key, <Leader>be opens the explorer normally, <Leader>bt toggles it open and close, <Leader>bs forces a horizontal split and <Leader>bv forces a vertical split. The documentation example assigns the leader key to Space.

How do I sort the bufexplorer buffer list?

The list can be sorted by most recently used, which is the default, by buffer number, by file name, by file extension or by full file path name. The list also lets you delete a buffer from it, and the full option set is in the VIM help shipped with the plugin.

Can bufexplorer open a buffer in a new tab?

Yes, with Shift-Enter or t. If the buffer is already open in another tab, bufexplorer can switch to that tab automatically rather than opening a duplicate.

Is bufexplorer still maintained?

Yes. The last push was on 2026-09-08, with release 7.14.0 tagged on 2026-03-17, and the plugin is published on vim.org as script 42. The repository ships a Vim9 version of the plugin alongside the classic one.

Official sources

  1. jlanzarotta/bufexplorer on GitHub
  2. License: BSD-3-Clause
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/jlanzarotta-bufexplorer.svg)](https://hysenlabs.com/projects/jlanzarotta-bufexplorer)