These two lines in your ~/.vimrc are enough to be able to work efficiently with buffers and windows and make tabs more useable:
set hidden
set switchbuf=useopen,usetab
The first makes it possible to replace the current unsaved buffer with another one.The second allows you to jump to a buffer where it is (in another window, another tab) instead of replacing the current buffer with :b buffername.
Only buffer related split commands like :sbuffer, :sbnext
In retrospect this probably wasn't wise of me; I don't use it myself, and I still run into the occasional Vim guru online who doesn't either.
I've edited the post with a clarifying note and given you a footnote. Thanks.
It only goes away when you explicitly delete it with a call to :quit or :bdelete.
This isn't true. :bdelete makes the buffer an unlisted-buffer. :bwipeout actually removes the buffer completely.Also, as far as buffer handling goes, I really like the SelectBuf ( http://www.vim.org/scripts/script.php?script_id=107 ) plugin for listing and sorting open buffers ( including unlisted! ). CtrlP ( http://kien.github.com/ctrlp.vim/ ) works well for searching them.