Вы можете полностью стереть буфер, используя команду: bwipeout (или: bw). Это полностью удаляет буфер из памяти, включая любые метки, настройки параметров и т. Д., Которые вы добавили в него. Точно так же: bdelete (или: bd) удаляет буфер, но оставляет его в памяти и сохраняет метки и настройки параметров.
Согласно комментарию Тома Хейла, документация Vim рекомендует использовать: bd over: bw, если вы не знаете, что делаете. Я склонен использовать: bw, потому что мне нравится идея полного удаления буфера из памяти, и я не слишком часто использую метки, настройки параметров буфера и т. Д., Чтобы они оставались после закрытия моего буфера.
Как и команда: quit (: q), Vim выдаст ошибку, если буфер был изменен. Чтобы решить эту проблему, вы можете добавить восклицательный знак после команды, чтобы подавить запрос. Другой вариант, вместо того, чтобы добавлять восклицательные знаки ко всему, - добавить «set verify» в ваш vimrc. С этим набором vim предложит вам сохранить изменения файла при закрытии.
: bufdo - полезная команда, которая выполняет другую команду для всех активных буферов. Комбинация команды: bufdo с командой: bw /: bd позволяет вам удалить все активные буферы одновременно. Вы по-прежнему можете использовать восклицательный знак для подавления ошибок, но если вы поместите его после: bufdo, after: bw или после обоих, это приведет к разным результатам для каждого:
: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
Вот несколько других полезных буферных команд:
: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)
Существует еще много возможностей для обработки буфера, что выходит за рамки этого вопроса. Взгляните на:
http://vim.wikia.com/wiki/Vim_buffer_FAQ
http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers