mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.0604: :startinsert in a terminal window used later
Problem: :startinsert in a terminal window used later. Solution: Ignore :startinsert in a terminal window. (closes #5952)
This commit is contained in:
@@ -7750,6 +7750,11 @@ ex_startinsert(exarg_T *eap)
|
|||||||
curwin->w_cursor.lnum = 1;
|
curwin->w_cursor.lnum = 1;
|
||||||
set_cursor_for_append_to_line();
|
set_cursor_for_append_to_line();
|
||||||
}
|
}
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
// Ignore this when running in an active terminal.
|
||||||
|
if (term_job_running(curbuf->b_term))
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Ignore the command when already in Insert mode. Inserting an
|
// Ignore the command when already in Insert mode. Inserting an
|
||||||
// expression register that invokes a function can do this.
|
// expression register that invokes a function can do this.
|
||||||
|
@@ -2612,4 +2612,26 @@ func Test_term_nasty_callback()
|
|||||||
set hidden&
|
set hidden&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_term_and_startinsert()
|
||||||
|
CheckRunVimInTerminal
|
||||||
|
CheckUnix
|
||||||
|
|
||||||
|
let lines =<< trim EOL
|
||||||
|
put='some text'
|
||||||
|
term
|
||||||
|
startinsert
|
||||||
|
EOL
|
||||||
|
call writefile(lines, 'XTest_startinsert')
|
||||||
|
let buf = RunVimInTerminal('-S XTest_startinsert', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, "exit\r")
|
||||||
|
call WaitForAssert({-> assert_equal("some text", term_getline(buf, 1))})
|
||||||
|
call term_sendkeys(buf, "0l")
|
||||||
|
call term_sendkeys(buf, "A<\<Esc>")
|
||||||
|
call WaitForAssert({-> assert_equal("some text<", term_getline(buf, 1))})
|
||||||
|
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call delete('XTest_startinsert')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -746,6 +746,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 */
|
||||||
|
/**/
|
||||||
|
604,
|
||||||
/**/
|
/**/
|
||||||
603,
|
603,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user