Когда буфер удаляется (команда "bd [elete]" ), он не только удаляет буфер, но также удаляет разделенное окно, в котором находился буфер.
Есть ли способ удалить/выгрузить буфер и сохранить раскол окна?
Когда буфер удаляется (команда "bd [elete]" ), он не только удаляет буфер, но также удаляет разделенное окно, в котором находился буфер.
Есть ли способ удалить/выгрузить буфер и сохранить раскол окна?
Мне очень нравится bufkill.vim есть github repo, а также
bp|bd #
сделает это.
Подробности: bp
( "предыдущий буфер" ) перемещает нас в другой буфер в текущем окне (bn
тоже будет работать), затем bd #
( "удаление буфера" "альтернативный файл" ) удаляет буфер, который мы только что отодвинули. См.: help bp
, help bd
, help alternate-file
.
См. удаление буфера без закрытия окна в вики-подсказках VIM.
Вы можете добавить следующее к .vimrc
, чтобы Bd
работал как Bd
, но не касаясь разбиения окна:
command Bd bp\|bd \#
Я нашел это полезным дополнением к тому, что ответил .
Я делаю что-то похожее на @Mud, но переключаюсь в предыдущий буфер представления #
вместо предыдущего буфера в списке буферов. Вот ключ привязки в моем .vimrc
:
nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>
Закрыть окна местоположения, если они есть, переключиться на предыдущий буфер представления, а затем закрыть последний переключенный буфер.
Я использовал:
:bp<bar>sp<bar>bn<bar>bd<CR>
Но я нашел определенные случаи, когда он закрыл мое окно. Кроме того, следующий или предыдущий буфер может быть не тем, что вы хотите отображать в расколе.
Теперь я делаю это:
nnoremap <leader>d :bd#<CR>
Мой выбор
: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) ключевое слово!
Это легко и очень полезно во многих других случаях!
Приятного Дня!:)