我怎么能关闭所有缓冲区在Vim除了一个我目前正在编辑?
当前回答
我可以很容易地做到这一点,像这样:
:%bd|e#
其他回答
我把它放在。vimrc文件中
nnoremap <leader>ca :w <bar> %bd <bar> e# <bar> bd# <CR>
然后你的leader + ca (close all)关闭除当前缓冲区外的所有缓冲区。
它的作用是
:w -保存当前缓冲区
%bd -关闭所有缓冲区
e# -打开上次编辑的文件
关闭未命名缓冲区
有一个插件可以做到这一点,甚至更多!
查看close-buffers.vim
这样如何:
ctrl-w o
(感谢https://thoughtbot.com/blog/vim-splits-move-faster-and-more-naturally)
你可以从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
nnoremap <leader>x :execute '%bdelete\|edit #\|normal `"'\|bdelete#<CR>
关闭所有缓冲区(副作用创建新的空缓冲区) 打开最后一个缓冲区 跳转到缓冲区中的最后编辑位置 删除空缓冲区