From ac4db4b814dae6cd9004276d1330702663256491 Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Wed, 11 Nov 2015 04:25:28 +0100 Subject: TermEnter -> TermOpen --- src/nvim/auevents.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/auevents.lua b/src/nvim/auevents.lua index 3d8a75febd..7c6ecf5708 100644 --- a/src/nvim/auevents.lua +++ b/src/nvim/auevents.lua @@ -101,6 +101,6 @@ return { TabNew=true, TabNewEntered=true, TabClosed=true, - TermEnter=true, + TermOpen=true, }, } -- cgit From 9fcd444036e687a3c5c9aa75fa29b6251b3ad431 Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Wed, 11 Nov 2015 04:27:50 +0100 Subject: Add TermClose event A terminal buffer now exits with: [Process exited ] You can hook into it. E.g. :au TermClose * call feedkeys('') Closes #2293. --- src/nvim/auevents.lua | 6 ++++-- src/nvim/eval.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/auevents.lua b/src/nvim/auevents.lua index 7c6ecf5708..7624dd2303 100644 --- a/src/nvim/auevents.lua +++ b/src/nvim/auevents.lua @@ -77,8 +77,9 @@ return { 'TabNew', -- when creating a new tab 'TabNewEntered', -- after entering a new tab 'TermChanged', -- after changing 'term' - 'TermResponse', -- after setting "v:termresponse" + 'TermClose', -- after the processs exits 'TermOpen', -- after opening a terminal buffer + 'TermResponse', -- after setting "v:termresponse" 'TextChanged', -- text was modified 'TextChangedI', -- text was modified in Insert mode 'User', -- user defined autocommand @@ -98,9 +99,10 @@ return { -- List of neovim-specific events or aliases for the purpose of generating -- syntax file neovim_specific = { + TabClosed=true, TabNew=true, TabNewEntered=true, - TabClosed=true, + TermClose=true, TermOpen=true, }, } diff --git a/src/nvim/eval.c b/src/nvim/eval.c index e1fa76c526..9581b81456 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -21781,8 +21781,10 @@ static void on_process_exit(Process *proc, int status, void *d) TerminalJobData *data = d; if (data->term && !data->exited) { data->exited = true; - terminal_close(data->term, - _("\r\n[Program exited, press any key to close]")); + char msg[22]; + snprintf(msg, sizeof msg, "\r\n[Process exited %d]", proc->status); + terminal_close(data->term, msg); + apply_autocmds(EVENT_TERMCLOSE, NULL, NULL, false, curbuf); } if (data->status_ptr) { -- cgit