当一个缓冲区被删除时(通过 :bd[elete]命令) ,它不仅删除了缓冲区,而且还删除了缓冲区所在的拆分窗口。
:bd[elete]
有没有办法删除/卸载一个缓冲区,并保持窗口拆分?
在 VIM 技巧维基上查看 删除缓冲区而不关闭窗口。
我真的很喜欢 Bufkill Vim有一个 Github Repo以及
bp|bd #可以。
bp|bd #
详细信息: bp命令(“ buffer before”)将我们移动到当前窗口中的另一个缓冲区(bn也可以) ,然后 bd #(“ buffer delete”“ Alternative file”)删除我们刚刚移开的缓冲区。参见 :help bp、 :help bd和 :help alternate-file。
bp
bn
bd #
:help bp
:help bd
:help alternate-file
你可以添加以下到你的 .vimrc,让 Bd作为 bd工作,但不要触摸窗口分裂:
.vimrc
Bd
bd
command Bd bp\|bd \#
我发现这是对什么 玛德接电话了。的有用补充
我做了一些类似@Mud 的操作,但是切换到前一个视图缓冲区 #,而不是缓冲区列表中的前一个缓冲区。下面是我的 .vimrc中的一个绑定键:
#
nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>
关闭 Location 窗口(如果存在) ,切换到上一个视图缓冲区,然后关闭上一个切换的缓冲区。
我过去常用:
: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. 召回 Buffer > | < 2. 删除 Buffer >
:vert sb 2 | bd # :vert sb <tab key~completed file(buffer)name> | bd #
为什么? ! 这很容易记住3(+ 1)关键字!
这是很容易的,非常有用的,在许多其他情况下!
祝你今天愉快! :)
事实上,有时候我喜欢 :bd的表现,所以我使用以下组合:
:bd
nmap <silent> <Leader>d :enew \| bd#<Return> nmap <silent> <Leader>w :bd<CR>
这允许我使用 <Leader>d来关闭一个缓冲区,同时维护 Split 和 <Leader>w来关闭一个缓冲区并同时进行分割。
<Leader>d
<Leader>w
:enew