Vim:删除缓冲区而不会丢失分割窗口

当缓冲区被删除(“bd [elete]”命令)时,它不仅删除缓冲区,而且还删除缓冲区所在的分割窗口。

有没有办法删除/卸载一个缓冲区,并保持窗口分裂?

我真的很喜欢bufkill.vim也有一个github回购

bp|bd #将做到这一点。


详细信息: bp (“buffer previous”)将我们移动到当前窗口中的另一个缓冲区( bn也可以),然后bd # (“buffer delete”“alternate file”)删除我们刚刚移走的缓冲区。 请参阅: help bphelp bdhelp alternate-file

请参阅删除缓冲区而不closures VIM提示wiki上的窗口 。

您可以将以下内容添加到.vimrc ,使Bdbd工作,但不触及窗口拆分:

command Bd bp\|bd \#

我认为这是对泥浆的回答有用的补充。

我做了类似于@Mud的东西,但切换到前一个视图缓冲区# ,而不是缓冲区列表中的前一个缓冲区。 这是我的.vimrc的绑定键:

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

closures位置窗口(如果存在),切换到上一个视图缓冲区,然后closures最后一个切换的缓冲区。

我曾经使用:

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

但是我发现在某些场合我的窗户closures了。 最重要的是,下一个或上一个缓冲区可能不是您希望在分割中显示的内容。

现在我这样做:

  • 切换到我想要处理的缓冲区
  • 删除备用缓冲区

nnoremap <leader>d :bd#<CR>

我的select是

 :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. 垂直的short_form(split_buffer或其他)

这很容易,很多情况下非常有用!

祝你今天愉快! 🙂