我怎么能关闭所有缓冲区在Vim除了一个我目前正在编辑?
当前回答
基于juanruiz的回答。
然后,在想要保留的缓冲区中做一个小更改
: 1、1000双相障碍
命令bd(缓冲区删除)将不会删除任何未保存更改的缓冲区。通过这种方式,您可以将当前(已更改的)文件保存在缓冲列表中。
编辑:请注意,这也会删除你的NERDTreeBuffer。你可以用NERDTree把它找回来
其他回答
nnoremap <leader>x :execute '%bdelete\|edit #\|normal `"'\|bdelete#<CR>
关闭所有缓冲区(副作用创建新的空缓冲区) 打开最后一个缓冲区 跳转到缓冲区中的最后编辑位置 删除空缓冲区
你可以从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
我这样做
:w | %bd | e#
如果我只想打开当前缓冲区,并关闭所有其他缓冲区,这是我的最爱。
它的工作原理:首先写入当前缓冲区的更改,然后关闭所有打开的缓冲区,然后重新打开我当前所在的缓冲区。在Vim中,|将命令的执行链接在一起。如果你的缓冲区是最新的,上面可以缩短为:%bd |e#
我喜欢1100bd (juananruiz建议),这似乎对我有用。
我添加了一个退出!我的地图给我
nnoremap <leader>bd :1,100bd<CR>
nnoremap <leader>bdq :1,100bd<CR>:q!<CR>
这会杀死所有缓冲区并关闭Vim,这正是我最想要的。
注意:正如注释中提到的,这会关闭窗口而不是缓冲区。
通过使用
:on[ly][!]
and
:h only
推荐文章
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- 如何复制一个选择到OS X剪贴板
- 如何删除(不削减)在Vim?
- Vim:在可视模式下快速选择文本块的方法