Quit vim, when a buffer has unsaved changes and is un-named?
At best you could call it a "transient" buffer (in memory but not associated with a specific file) but what you created with :vnew
is not a "scratch" buffer.
In Vim, a "scratch" buffer is a normal buffer in which you set a bunch of local options. It can be done with a command like this:
:vnew | setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile
This happens when you have a modified hidden buffer. Use :qa!
to exit anyway.
From :h :quit
:
:q[uit]! Quit without writing, also when currently visible
buffers have changes. Does not exit when this is the
last window and there is a changed hidden buffer.
In this case, the first changed hidden buffer becomes
the current buffer.
Use ":qall!" to exit always.
In case someone wants to reproduce it:
- Start vim and modify the unnamed buffer
- Edit another file (you might need to
:set hidden
), ie:e README
- Try to exit with
:q!