当缓冲区被删除时(“bd [elete]”命令),它不仅会删除缓冲区,还会删除缓冲区所在的分割窗口。
有没有办法删除/卸载缓冲区并保持窗口分割?
答案 0 :(得分:292)
bp|bd #
会这样做。
详细信息:bp
(“buffer previous”)将我们移动到当前窗口中的不同缓冲区(bn
也可以),然后bd #
(“缓冲区删除”“备用文件“)删除我们刚刚离开的缓冲区。请参阅:help bp
,help bd
,help alternate-file
。
答案 1 :(得分:25)
我非常喜欢bufkill.vim还有github repo
答案 2 :(得分:12)
请参阅有关VIM提示wiki的deleting a buffer without closing the window。
答案 3 :(得分:11)
答案 4 :(得分:3)
我做了类似@Mud的事情,但切换到上一个视图缓冲区#
,而不是缓冲区列表中的前一个缓冲区。这是我.vimrc
中的绑定密钥:
nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>
关闭位置窗口(如果存在),切换到上一个视图缓冲区,然后关闭最后一个切换缓冲区。
答案 5 :(得分:1)
我的选择是
:sb # | bd #
:sb 1 | bd #
: <1. Recall Buffer> | <2. Delete Buffer>
这样想! ///&lt; 1。 Recall Buffer&gt; | &2。删除缓冲区&gt;
:vert sb 2 | bd #
:vert sb <tab key~completed file(buffer)name> | bd #
为什么?它很容易记住3(+ 1)个关键字!
在许多其他情况下,这很容易且非常有用!
祝你有愉快的一天! :)
答案 6 :(得分:0)
我以前用过:
:bp<bar>sp<bar>bn<bar>bd<CR>
但是我发现它关闭了窗户的某些场合。最重要的是,下一个或上一个缓冲区可能不是您希望在拆分中显示的内容。
现在我这样做:
nnoremap <leader>d :bd#<CR>
答案 7 :(得分:0)
我实际上有时候有时候喜欢:bd
的行为,所以我使用以下组合:
nmap <silent> <Leader>d :enew \| bd#<Return>
nmap <silent> <Leader>w :bd<CR>
这使我可以使用<Leader>d
关闭缓冲区,同时保持拆分状态,而<Leader>w
可以关闭缓冲区并同时拆分。
:enew
创建一个新缓冲区并将焦点切换到该缓冲区bd #
删除最后一个聚焦的缓冲区