0
0
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:
Bram Moolenaar
2020-04-19 18:13:19 +02:00
parent f49e564082
commit eb58a24658
3 changed files with 29 additions and 0 deletions

View File

@@ -7750,6 +7750,11 @@ ex_startinsert(exarg_T *eap)
curwin->w_cursor.lnum = 1;
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
// expression register that invokes a function can do this.

View File

@@ -2612,4 +2612,26 @@ func Test_term_nasty_callback()
set hidden&
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

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
604,
/**/
603,
/**/