mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
patch 8.2.1988: still in Insert mode when opening terminal popup
Problem: Still in Insert mode when opening terminal popup with a <Cmd> mapping in Insert mode. Solution: Exit Insert mode. (closes #7295)
This commit is contained in:
@@ -1033,6 +1033,11 @@ doESCkey:
|
||||
|
||||
case K_COMMAND: // <Cmd>command<CR>
|
||||
do_cmdline(NULL, getcmdkeycmd, NULL, 0);
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (term_use_loop())
|
||||
// Started a terminal that gets the input, exit Insert mode.
|
||||
goto doESCkey;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case K_CURSORHOLD: // Didn't type something for a while.
|
||||
|
@@ -1237,6 +1237,24 @@ func Test_terminal_popup_with_cmd()
|
||||
unlet s:winid
|
||||
endfunc
|
||||
|
||||
func Test_terminal_popup_insert_cmd()
|
||||
CheckUnix
|
||||
|
||||
inoremap <F3> <Cmd>call StartTermInPopup()<CR>
|
||||
func StartTermInPopup()
|
||||
call term_start(['/bin/sh', '-c', 'cat'], #{hidden: v:true})->popup_create(#{highlight: 'Pmenu'})
|
||||
endfunc
|
||||
call feedkeys("i\<F3>")
|
||||
sleep 10m
|
||||
call assert_equal('n', mode())
|
||||
|
||||
call feedkeys("\<C-D>", 'xt')
|
||||
sleep 20m
|
||||
call feedkeys(":q\<CR>", 'xt')
|
||||
delfunc StartTermInPopup
|
||||
iunmap <F3>
|
||||
endfunc
|
||||
|
||||
func Check_dump01(off)
|
||||
call assert_equal('one two three four five', trim(getline(a:off + 1)))
|
||||
call assert_equal('~ Select Word', trim(getline(a:off + 7)))
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1988,
|
||||
/**/
|
||||
1987,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user