forked from aniani/vim
patch 8.1.2219: no autocommand for open window with terminal
Problem: No autocommand for open window with terminal. Solution: Add TerminalWinOpen. (Christian Brabandt)
This commit is contained in:
@@ -268,7 +268,6 @@ Name triggered by ~
|
|||||||
|BufCreate| just after adding a buffer to the buffer list
|
|BufCreate| just after adding a buffer to the buffer list
|
||||||
|BufDelete| before deleting a buffer from the buffer list
|
|BufDelete| before deleting a buffer from the buffer list
|
||||||
|BufWipeout| before completely deleting a buffer
|
|BufWipeout| before completely deleting a buffer
|
||||||
|TerminalOpen| after a terminal buffer was created
|
|
||||||
|
|
||||||
|BufFilePre| before changing the name of the current buffer
|
|BufFilePre| before changing the name of the current buffer
|
||||||
|BufFilePost| after changing the name of the current buffer
|
|BufFilePost| after changing the name of the current buffer
|
||||||
@@ -302,6 +301,10 @@ Name triggered by ~
|
|||||||
|VimLeavePre| before exiting Vim, before writing the viminfo file
|
|VimLeavePre| before exiting Vim, before writing the viminfo file
|
||||||
|VimLeave| before exiting Vim, after writing the viminfo file
|
|VimLeave| before exiting Vim, after writing the viminfo file
|
||||||
|
|
||||||
|
Terminal
|
||||||
|
|TerminalOpen| after a terminal buffer was created
|
||||||
|
|TerminalWinOpen| after a terminal buffer was created in a new window
|
||||||
|
|
||||||
Various
|
Various
|
||||||
|FileChangedShell| Vim notices that a file changed since editing started
|
|FileChangedShell| Vim notices that a file changed since editing started
|
||||||
|FileChangedShellPost| After handling a file changed since editing started
|
|FileChangedShellPost| After handling a file changed since editing started
|
||||||
@@ -1081,6 +1084,12 @@ TerminalOpen Just after a terminal buffer was created, with
|
|||||||
`:terminal` or |term_start()|. This event is
|
`:terminal` or |term_start()|. This event is
|
||||||
triggered even if the buffer is created
|
triggered even if the buffer is created
|
||||||
without a window, with the ++hidden option.
|
without a window, with the ++hidden option.
|
||||||
|
*TerminalWinOpen*
|
||||||
|
TerminalWinOpen Just after a terminal buffer was created, with
|
||||||
|
`:terminal` or |term_start()|. This event is
|
||||||
|
triggered only if the buffer is created
|
||||||
|
with a window. Can be used to set window
|
||||||
|
local options for the terminal window.
|
||||||
*TermResponse*
|
*TermResponse*
|
||||||
TermResponse After the response to |t_RV| is received from
|
TermResponse After the response to |t_RV| is received from
|
||||||
the terminal. The value of |v:termresponse|
|
the terminal. The value of |v:termresponse|
|
||||||
|
@@ -174,6 +174,7 @@ static struct event_name
|
|||||||
{"TabLeave", EVENT_TABLEAVE},
|
{"TabLeave", EVENT_TABLEAVE},
|
||||||
{"TermChanged", EVENT_TERMCHANGED},
|
{"TermChanged", EVENT_TERMCHANGED},
|
||||||
{"TerminalOpen", EVENT_TERMINALOPEN},
|
{"TerminalOpen", EVENT_TERMINALOPEN},
|
||||||
|
{"TerminalWinOpen", EVENT_TERMINALWINOPEN},
|
||||||
{"TermResponse", EVENT_TERMRESPONSE},
|
{"TermResponse", EVENT_TERMRESPONSE},
|
||||||
{"TextChanged", EVENT_TEXTCHANGED},
|
{"TextChanged", EVENT_TEXTCHANGED},
|
||||||
{"TextChangedI", EVENT_TEXTCHANGEDI},
|
{"TextChangedI", EVENT_TEXTCHANGEDI},
|
||||||
|
@@ -690,6 +690,8 @@ term_start(
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply_autocmds(EVENT_TERMINALOPEN, NULL, NULL, FALSE, newbuf);
|
apply_autocmds(EVENT_TERMINALOPEN, NULL, NULL, FALSE, newbuf);
|
||||||
|
if (!opt->jo_hidden && !(flags & TERM_START_SYSTEM))
|
||||||
|
apply_autocmds(EVENT_TERMINALWINOPEN, NULL, NULL, FALSE, newbuf);
|
||||||
return newbuf;
|
return newbuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -68,6 +68,23 @@ func Test_terminal_basic()
|
|||||||
unlet g:job
|
unlet g:job
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_terminal_TerminalWinOpen()
|
||||||
|
au TerminalWinOpen * let b:done = 'yes'
|
||||||
|
let buf = Run_shell_in_terminal({})
|
||||||
|
call assert_equal('yes', b:done)
|
||||||
|
call StopShellInTerminal(buf)
|
||||||
|
" closing window wipes out the terminal buffer with the finished job
|
||||||
|
close
|
||||||
|
|
||||||
|
if has("unix")
|
||||||
|
terminal ++hidden ++open sleep 1
|
||||||
|
sleep 1
|
||||||
|
call assert_fails("echo b:done", 'E121:')
|
||||||
|
endif
|
||||||
|
|
||||||
|
au! TerminalWinOpen
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_terminal_make_change()
|
func Test_terminal_make_change()
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
call StopShellInTerminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2219,
|
||||||
/**/
|
/**/
|
||||||
2218,
|
2218,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -1341,6 +1341,7 @@ enum auto_event
|
|||||||
EVENT_TABNEW, // when entering a new tab page
|
EVENT_TABNEW, // when entering a new tab page
|
||||||
EVENT_TERMCHANGED, // after changing 'term'
|
EVENT_TERMCHANGED, // after changing 'term'
|
||||||
EVENT_TERMINALOPEN, // after a terminal buffer was created
|
EVENT_TERMINALOPEN, // after a terminal buffer was created
|
||||||
|
EVENT_TERMINALWINOPEN, // after a terminal buffer was created and entering its window
|
||||||
EVENT_TERMRESPONSE, // after setting "v:termresponse"
|
EVENT_TERMRESPONSE, // after setting "v:termresponse"
|
||||||
EVENT_TEXTCHANGED, // text was modified not in Insert mode
|
EVENT_TEXTCHANGED, // text was modified not in Insert mode
|
||||||
EVENT_TEXTCHANGEDI, // text was modified in Insert mode
|
EVENT_TEXTCHANGEDI, // text was modified in Insert mode
|
||||||
|
Reference in New Issue
Block a user