First thing's first, let's make sure our definitions are in sync. Per,
- A buffer is the in-memory text of a file.
- A window is a viewport on a buffer.
- (And for the sake of completeness) A tab page is a collection of windows.
Above these things are your terminal window or your GUI window which contain Vim. Vim has no direct control over these kinds of windows and we will not refer to them beyond this point.
Second, there's an important setting that will impact how things work:
'hidden'. By default this is disabled and when that's the case one of its effects is to delete empty buffers if they go out of view. That will cramp our style so do
As an aside, many people can't live without enabling this because doing so allows a much better, buffer-centric workflow than you can get otherwise. There are volumes written about this and, coincidentally, in the last couple days I was proselytizing about it here in some comments.
Anyways, back on topic, now that we have
'hidden' enabled we just need to run one or two basic commands. First,
:new. This will open a new window (a "split") and it will contain a fresh, new buffer. If your preference is one window per buffer that's all you need. You can keep running it until you are sated.
TIP: after the first
:new use Normal mode command
@: to repeat it. Precede with a number to repeat it that many times.
On the other hand, if you only want a single window with all but the original buffer hidden (and accessible with, for example,
:bnext) then simply enter a second command
:close as often as needed. Better yet, use
:new | close. Then you can use the same tip as above
That's pretty much it.
:enew will open a fresh, new buffer without opening a split but it will clobber any fresh, new buffer already opened in the same window. You'd have to modify the existing buffer to avoid this.)