Answers:
这将删除缓冲区(转换为关闭文件)
:bd
如前所述,您正在寻找:bd
,但是并不能完全删除缓冲区,仍然可以访问它:
:e foo
:e bar
:buffers
1 #h "foo" line 1
2 %a "bar" line 1
Press ENTER or type command to continue
:bd 2
:buffers
1 %a "foo" line 1
Press ENTER or type command to continue
:b 2
2 bar
您可能希望将:bw
其完全删除。
:bw 2
:b 2
E86: Buffer 2 does not exist
:bw
一段时间以来,我都不了解我。
:bw
:“除非您知道自己在做什么,否则请不要使用它。”
如果您的Vim窗口中有多个拆分窗口,请:bd
关闭当前文件的拆分窗口,因此我想使用更高级的方法:
map fc <Esc>:call CleanClose(1)
map fq <Esc>:call CleanClose(0)
function! CleanClose(tosave)
if (a:tosave == 1)
w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
exe "b".newbufNr
else
bnext
endif
if (bufnr("%") == todelbufNr)
new
endif
exe "bd".todelbufNr
endfunction
:[N] bd [elete] [!] *:bd * *:bdel * *:bdelete * * E516 * :bd [elete] [!] [N] 卸载缓冲区[N](默认值:当前缓冲区)并从中删除 缓冲区列表。如果更改了缓冲区,则会失败, 除非指定[!],否则更改将丢失。 该文件不受影响。该缓冲区的任何窗口是 关闭。如果缓冲区[N]是当前缓冲区,则另一个缓冲区 将改为显示。这是中的最新条目 指向已加载缓冲区的跳转列表。 实际上,缓冲区并没有完全删除,而是被删除了 从缓冲区列表| unlisted-buffer | 和选项值, 缓冲区的变量和映射/缩写是 已清除。
如果您修改文件并要关闭它而不退出Vim且不保存,则应输入:bd!
。
所述bufkill.vim插件添加BD
等,删除缓冲器而不关闭任何拆分(如bd
)将单独。
我有同样的问题,所以我做了插件。该插件替换:q和其他命令,然后防止窗口关闭。
如果仍然有问题,请尝试使用以下插件。 https://github.com/taka-vagyok/prevent-win-closed.vim