【问题标题】:How to exit out of shell session started with :bel terminal ++noclose cleaning closing window如何退出以 :bel 终端 ++noclose 清理关闭窗口开始的 shell 会话
【发布时间】:2019-11-11 14:01:03
【问题描述】:
我在 Mac OS X 上使用 vim 8.1.x。
我的 vimrc 中有以下内容
autocmd VimEnter * :bel terminal ++noclose
目的是在vim的底部打开一个终端。
- 当我试图通过关闭所有缓冲区来退出 vim 时
:qa
底部不退出终端
- 我在终端中手动输入
exit 退出。终端已退出,但终端缓冲区仍处于打开状态。
如何很好地退出 vim 关闭所有窗口,包括终端?
【问题讨论】:
标签:
vim
terminal
exit
macvim
【解决方案1】:
来自 E947 的 Vim 文档:
只要作业在运行,就认为缓冲区被修改,Vim 不能轻易退出,见放弃。
您可以使用几个选项。一种是使用:qa! 退出。另一种是设置一个 autocmd 以在您退出时终止所有终端窗口:
autocmd ExitPre * for i in term_list() | exe ':bd! ' . i | endfor
这会钩住ExitPre 事件,并在该事件发生时删除所有带有终端的缓冲区。但是请注意,如果您的退出由于另一个缓冲区被修改而中止,那么您的终端仍将关闭。没有办法避免这种情况,因为 Vim 不会区分修改过的终端和其他修改过的缓冲区。