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


当前回答

我把它放在。vimrc文件中

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

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

它的作用是

:w -保存当前缓冲区

%bd -关闭所有缓冲区

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

关闭未命名缓冲区

其他回答

:%bd then Ctrl-o

:%bd删除所有缓冲区

按Ctrl-o跳转回最后一个缓冲区,即您所引用的“This One”。

这样如何:

ctrl-w o

(感谢https://thoughtbot.com/blog/vim-splits-move-faster-and-more-naturally)

如果你不关心当前的,更简单的做法是(不需要脚本):

1,100bd

我喜欢1100bd (juananruiz建议),这似乎对我有用。

我添加了一个退出!我的地图给我

nnoremap <leader>bd :1,100bd<CR>
nnoremap <leader>bdq :1,100bd<CR>:q!<CR>

这会杀死所有缓冲区并关闭Vim,这正是我最想要的。

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

通过使用

:on[ly][!]

and

:h only