我怎么能关闭所有缓冲区在Vim除了一个我目前正在编辑?


当前回答

注意:正如注释中提到的,这会关闭窗口而不是缓冲区。

通过使用

:on[ly][!]

and

:h only

其他回答

试试这个

bufdo bd

Bufdo为所有缓冲区运行命令

http://vim.wikia.com/wiki/Run_a_command_in_multiple_buffers

这是一个老问题,但它帮助我为我的项目获得了一些想法。为了关闭除当前使用的缓冲区外的所有缓冲区,请使用;

map <leader>o:execute "%bd\|e#"<CR>

基于juanruiz的回答。

然后,在想要保留的缓冲区中做一个小更改

: 1、1000双相障碍

命令bd(缓冲区删除)将不会删除任何未保存更改的缓冲区。通过这种方式,您可以将当前(已更改的)文件保存在缓冲列表中。

编辑:请注意,这也会删除你的NERDTreeBuffer。你可以用NERDTree把它找回来

我把它放在。vimrc文件中

nnoremap <leader>ca :w <bar> %bd <bar> e# <bar> bd# <CR>

然后你的leader + ca (close all)关闭除当前缓冲区外的所有缓冲区。

它的作用是

:w -保存当前缓冲区

%bd -关闭所有缓冲区

e# -打开上次编辑的文件

关闭未命名缓冲区

我可以很容易地做到这一点,像这样:

:%bd|e#