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