aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval/funcs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index 177f64ebba..70e687ce73 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -8502,6 +8502,16 @@ static void f_termopen(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
channel_terminal_open(curbuf, chan);
channel_create_event(chan, NULL);
+
+ do_cmdline_cmd("augroup nvim_terminal_close");
+ do_cmdline_cmd("autocmd! TermClose <buffer> "
+ " if !v:event.status |"
+ " let info = nvim_get_chan_info(&channel) |"
+ " if info.argv ==# [&shell] |"
+ " exec 'bdelete! ' .. expand('<abuf>') |"
+ " endif |"
+ " endif");
+ do_cmdline_cmd("augroup END");
}
/// "timer_info([timer])" function