An open API service indexing awesome lists of open source software.

https://github.com/cometsong/bufkill.vim

Git mirror of 'bufkilll.vim'. http://www.vim.org/scripts/script.php?script_id=1147
https://github.com/cometsong/bufkill.vim

Last synced: 5 months ago
JSON representation

Git mirror of 'bufkilll.vim'. http://www.vim.org/scripts/script.php?script_id=1147

Awesome Lists containing this project

README

          

This is a mirror of http://www.vim.org/scripts/script.php?script_id=1147

Basic Usage:
When you want to unload/delete/wipe a buffer, use:
:bun/:bd/:bw to close the window as well (vim command), or
:BUN/:BD/:BW to leave the window(s) intact (this script).
To move backwards and forwards through the chronological
list of buffers accessed, use :BB and :BF, respectively.
Mappings are also defined.

Detailed Description:
This is a script to
a) unload, delete or wipe a buffer without closing the window (or windows)
it was displayed in
b) in its place, display the buffer most recently used in each window
it was displayed in. This selection is taken from the full list of
buffers ever displayed in each respective window (since vim was started)
c) allow one level of undo in case you kill a buffer then change your mind
d) allow various customizations via option variables

Since the script maintains a list of buffer access order for each window,
commands are also provided to move backwards and forwards between
the buffers in this order, similar to going backwards and forwards in a
web browser.

The inspiration for this script came from
a) my own frustration with vim's lack of this functionality
b) the description of the emacs kill-buffer command in vimtip #622
(this script basically duplicates this command I believe,
not sure about the undo functionality)
c) comments and many mails from Keith Roberts when the issue was
raised in the vim@vim.org mailing list.

install details
The usual - drop the file into your $HOME/.vim/plugin directory (unix)
or $HOME/vimfiles/plugin directory (Windows), etc.
Use the commands/mappings defined to invoke the functionality
(or redefine them elsewhere to what you want), and set the
User Configurable Variables as desired. You should be able to make
any customisations to the controls in your vimrc file, such that
updating to new versions of this script won't affect your settings.