Puede borrar completamente un búfer utilizando el comando: bwipeout (o: bw). Esto elimina por completo el búfer de la memoria, incluidas las marcas, la configuración de opciones, etc. que haya agregado. Del mismo modo,: bdelete (o: bd) elimina el búfer, pero lo deja en la memoria y mantiene las marcas y la configuración de opciones.
Según el comentario de Tom Hale, la documentación de Vim recomienda usar: bd sobre: bw a menos que sepa lo que está haciendo. Tiendo a usar: bw porque me gusta la idea de eliminar completamente el búfer de la memoria, y no hago mucho uso de las marcas, configuraciones de opciones específicas del búfer, etc., hasta el punto de necesitar que permanezcan después de cerrar mi búfer.
Al igual que el comando: quit (: q), Vim dará un error si el búfer ha cambiado. Para solucionar esto, puede agregar un signo de exclamación después del comando para suprimir el mensaje. Otra opción, en lugar de agregar signos de exclamación a todo, es agregar "set confirm" a su vimrc. Con este conjunto, vim le pedirá que guarde los cambios del archivo al cerrar.
: bufdo es un comando útil que realiza otro comando en todos los búferes activos. La combinación del comando: bufdo con el comando: bw /: bd le permite eliminar todos los búferes activos a la vez. Todavía puede usar el signo de exclamación para suprimir errores, pero si lo coloca después de: bufdo, después de: bw o después de que ambos causen resultados diferentes para cada uno:
:bd - deletes the current buffer, error if there are unwritten changes
:bd! - deletes the current buffer, no error if unwritten changes
:bufdo bd - deletes all buffers, stops at first error (unwritten changes)
:bufdo! bd - deletes all buffers except those with unwritten changes
:bufdo! bd! - deletes all buffers, no error on any unwritten changes
:bw - completely deletes the current buffer, error if there are unwritten changes
:bw! - completely deletes the current buffer, no error if unwritten changes
:bufdo bw - completely deletes all buffers, stops at first error (unwritten changes)
:bufdo! bw - completely deletes all buffers except those with unwritten changes
:bufdo! bw! - completely deletes all buffers, no error on any unwritten changes
:set confirm - confirm changes (Yes, No, Cancel) instead of error
Aquí hay algunos otros comandos de búfer útiles:
:ls - list open buffers
:b N - open buffer number N (as shown in ls)
:tabe +Nbuf - open buffer number N in new tab
:bnext - go to the next buffer (:bn also)
:bprevious - go to the previous buffer (:bp also)
Hay mucho más en el manejo del búfer que está fuera del alcance de esta pregunta. Echa un vistazo a:
http://vim.wikia.com/wiki/Vim_buffer_FAQ
http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers