Vim: удаление буфера без потери разделенного окна

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

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

Ответ 2

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


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

Ответ 4

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

command Bd bp\|bd \#

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

Ответ 5

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

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

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

Ответ 6

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

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

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

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

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

nnoremap <leader>d :bd#<CR>

Ответ 7

Мой выбор

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

Подумайте, как это! /// < 1. Вызов буферa > | & Л; 2. Удалить буфеp >

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

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

  • sb split_buffer
  • bd буфер удаления ▶ простые ключевые слова
  • # или номер буфера
  • vert ▶ короткая форма вертикальной (split_buffer или еще)

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

Приятного Дня!:)