Vim:删除缓冲区而不会丢失分割窗口
当缓冲区被删除(“bd [elete]”命令)时,它不仅删除缓冲区,而且还删除缓冲区所在的分割窗口。
有没有办法删除/卸载一个缓冲区,并保持窗口分裂?
我真的很喜欢bufkill.vim也有一个github回购
bp|bd #
将做到这一点。
详细信息: bp
(“buffer previous”)将我们移动到当前窗口中的另一个缓冲区( bn
也可以),然后bd #
(“buffer delete”“alternate file”)删除我们刚刚移走的缓冲区。 请参阅: help bp
, help bd
, help alternate-file
。
请参阅删除缓冲区而不closures VIM提示wiki上的窗口 。
您可以将以下内容添加到.vimrc
,使Bd
以bd
工作,但不触及窗口拆分:
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)个关键字!
- sb split_buffer
- BD删除缓冲区▶简单的2个关键字
- #或缓冲区的数量
- 垂直的short_form(split_buffer或其他)
这很容易,很多情况下非常有用!
祝你今天愉快! 🙂