Merge pull request #25388 from neovim/backport-25383-to-release-0.9

[Backport release-0.9] vim-patch:8.2.3467: CursorHoldI event interferes with "CTRL-G U"
This commit is contained in:
zeertzjq
2023-09-27 19:28:16 +08:00
committed by GitHub
2 changed files with 20 additions and 0 deletions

View File

@@ -876,6 +876,10 @@ static int insert_handle_key(InsertState *s)
case K_EVENT: // some event
state_handle_k_event();
// If CTRL-G U was used apply it to the next typed key.
if (dont_sync_undo == kTrue) {
dont_sync_undo = kNone;
}
goto check_pum;
case K_COMMAND: // some command

View File

@@ -103,6 +103,22 @@ if has('timers')
set updatetime&
endfunc
func Test_cursorhold_insert_ctrl_g_U()
au CursorHoldI * :
set updatetime=20
new
call timer_start(100, { -> feedkeys("\<Left>foo\<Esc>", 't') })
call feedkeys("i()\<C-g>U", 'tx!')
sleep 200m
call assert_equal('(foo)', getline(1))
undo
call assert_equal('', getline(1))
bwipe!
au! CursorHoldI
set updatetime&
endfunc
func Test_OptionSet_modeline()
CheckFunction test_override
call test_override('starting', 1)