我怎么能关闭所有缓冲区在Vim除了一个我目前正在编辑?
当前回答
这是一个老问题,但它帮助我为我的项目获得了一些想法。为了关闭除当前使用的缓冲区外的所有缓冲区,请使用;
map <leader>o:execute "%bd\|e#"<CR>
其他回答
我把它放在。vimrc文件中
nnoremap <leader>ca :w <bar> %bd <bar> e# <bar> bd# <CR>
然后你的leader + ca (close all)关闭除当前缓冲区外的所有缓冲区。
它的作用是
:w -保存当前缓冲区
%bd -关闭所有缓冲区
e# -打开上次编辑的文件
关闭未命名缓冲区
你可以从vim.org上使用这个脚本:
http://www.vim.org/scripts/script.php?script_id=1071
只要把它放到你的。vim/plugin目录下,然后使用:BufOnly命令关闭所有的缓冲区,但激活的缓冲区除外。您还可以在.vimrc中将它映射到您喜欢的其他地方。
来源Github(通过vim-scripts镜像):https://github.com/vim-scripts/BufOnly.vim/blob/master/plugin/BufOnly.vim
注意:正如注释中提到的,这会关闭窗口而不是缓冲区。
通过使用
:on[ly][!]
and
:h only
有一个插件可以做到这一点,甚至更多!
查看close-buffers.vim
:%bd then Ctrl-o
:%bd删除所有缓冲区
按Ctrl-o跳转回最后一个缓冲区,即您所引用的“This One”。