我怎么能关闭所有缓冲区在Vim除了一个我目前正在编辑?
当前回答
我把它放在。vimrc文件中
nnoremap <leader>ca :w <bar> %bd <bar> e# <bar> bd# <CR>
然后你的leader + ca (close all)关闭除当前缓冲区外的所有缓冲区。
它的作用是
:w -保存当前缓冲区
%bd -关闭所有缓冲区
e# -打开上次编辑的文件
关闭未命名缓冲区
其他回答
有一个插件可以做到这一点,甚至更多!
查看close-buffers.vim
基于juanruiz的回答。
然后,在想要保留的缓冲区中做一个小更改
: 1、1000双相障碍
命令bd(缓冲区删除)将不会删除任何未保存更改的缓冲区。通过这种方式,您可以将当前(已更改的)文件保存在缓冲列表中。
编辑:请注意,这也会删除你的NERDTreeBuffer。你可以用NERDTree把它找回来
如果你不关心当前的,更简单的做法是(不需要脚本):
1,100bd
nnoremap <leader>x :execute '%bdelete\|edit #\|normal `"'\|bdelete#<CR>
关闭所有缓冲区(副作用创建新的空缓冲区) 打开最后一个缓冲区 跳转到缓冲区中的最后编辑位置 删除空缓冲区
我把Alejandro的评论和badteeth的评论结合起来:
command! Bonly silent execute "%bd|norm <C-O>"
范数<C-O>跳转到跳转列表中的最后一个位置,这意味着游标在%bd之前的位置。 我用silent代替了silent!这样,如果任何打开的缓冲区被修改,Vim就会打印一条错误消息,这样我就知道发生了什么。修改后的缓冲区在我的测试中保持打开状态。
无关:这是我的第500个答案!
推荐文章
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- 如何复制一个选择到OS X剪贴板
- 如何删除(不削减)在Vim?
- Vim:在可视模式下快速选择文本块的方法