Vim: Удалить буфер без потери разделенного окна - PullRequest
132 голосов
/ 16 декабря 2010

Когда буфер удаляется (команда "bd [elete]"), он не только удаляет буфер, но и удаляет разделенное окно, в котором был буфер.

Есть ли способ удалить / выгрузить буфер и сохранить окно разделенным?

Ответы [ 7 ]

297 голосов
/ 17 декабря 2010

bp|bd # сделает это.


Подробности: bp («предыдущий буфер») перемещает нас в другой буфер в текущем окне (тоже будет работать bn), затем bd # («удаление буфера» «альтернативный файл») удаляет буфер, от которого мы только что отошли. См .: help bp, help bd, help alternate-file.

25 голосов
/ 17 декабря 2010

Мне очень нравится bufkill.vim , есть также репозиторий github

12 голосов
/ 16 декабря 2010

См. удаление буфера без закрытия окна на вики-подсказках VIM.

11 голосов
/ 21 марта 2015

Вы можете добавить следующее к вашему .vimrc, чтобы Bd работал как bd, но не касаясь разделения окна:

command Bd bp\|bd \#

Я нашел это как полезное дополнение к тому, что Грязь ответила.

3 голосов
/ 27 ноября 2015

Я делаю нечто похожее на @Mud, но переключаюсь на предыдущий буфер просмотра, #, вместо предыдущего буфера в списке буферов. Вот обязательный ключ в моем .vimrc:

nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>

Закройте окна расположения, если они есть, переключитесь на предыдущий буфер просмотра, а затем закройте последний переключенный буфер.

1 голос
/ 10 сентября 2017

Мой выбор

:sb # | bd #
:sb 1 | bd #
: <1. Recall Buffer> | <2. Delete Buffer>

Думай так!/// <1.Буфер отзыва> |<2.Удалить буфер>

:vert sb 2 | bd #
:vert sb <tab key~completed file(buffer)name> | bd #

почему ?!3 (+ 1) ключевого слова легко запомнить!

  1. sb split_buffer
  2. bd удалить буфер ▶ простые 2 ключевых слова
  3. # или номер буфера
  4. vert ▶ short_form по вертикали (split_buffer или еще)

Это просто и очень полезно во многих других случаях!

Хорошего дня!:)

0 голосов
/ 16 августа 2016

Я использовал для:

:bp<bar>sp<bar>bn<bar>bd<CR>

Но я нашел определенные случаи, когда это закрывало мое окно. Кроме того, следующий или предыдущий буфер может быть не тем, что вы хотите отображать в разбиении.

Теперь я делаю это:

  • переключиться в буфер, над которым я хочу работать
  • Удалить альтернативный буфер

nnoremap <leader>d :bd#<CR>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...