Commit: patch 9.2.0748: 'autocompletedelay' interferes with CTRL-G U

1 view
Skip to first unread message

Christian Brabandt

unread,
3:45 PM (5 hours ago) 3:45 PM
to vim...@googlegroups.com
patch 9.2.0748: 'autocompletedelay' interferes with CTRL-G U

Commit: https://github.com/vim/vim/commit/9fb5b5d8765e39dafc88f178ad9fd1879c683daf
Author: zeertzjq <zeer...@outlook.com>
Date: Sun Jun 28 19:27:31 2026 +0000

patch 9.2.0748: 'autocompletedelay' interferes with CTRL-G U

Problem: 'autocompletedelay' interferes with CTRL-G U (after 9.2.0739).
Solution: Restore the flag for CTRL-G U.

related: #8937
related: #20666

Signed-off-by: zeertzjq <zeer...@outlook.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/edit.c b/src/edit.c
index 1860ba371..93910de6b 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1171,6 +1171,9 @@ doESCkey:
break;

case K_COMPLETE_DELAY: // 'autocompletedelay' expired
+ // If CTRL-G U was used apply it to the next typed key.
+ if (dont_sync_undo == TRUE)
+ dont_sync_undo = MAYBE;
ins_compl_clear_autocomplete_delay();
if (!ins_compl_has_autocomplete() || char_avail()
|| curwin->w_cursor.col == 0)
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index 00fcf4e44..b178ad272 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -5976,6 +5976,30 @@ func Test_autocompletedelay()
call StopVimInTerminal(buf)
endfunc

+func Run_test_autocompletedelay_ctrl_g_U(delay1, delay2)
+ new
+ call setline(1, 'foo bar baz')
+ inoremap <buffer> ( ()<C-g>U
+ set autocomplete autocompletedelay=200
+
+ call timer_start(a:delay1, { -> feedkeys('(', 't') })
+ call timer_start(a:delay2, { -> feedkeys("\<Left>a\<Esc>", 't') })
+ call feedkeys('ob', 'tx!')
+ call assert_equal(['foo bar baz', 'b(a)'], getline(1, '$'))
+ undo
+ call assert_equal(['foo bar baz'], getline(1, '$'))
+
+ set autocomplete& autocompletedelay&
+ bwipe!
+endfunc
+
+func Test_autocompletedelay_ctrl_g_U()
+ " '(' typed after 'autocompletedelay' expires
+ call Run_test_autocompletedelay_ctrl_g_U(250, 500)
+ " '(' typed before 'autocompletedelay' expires
+ call Run_test_autocompletedelay_ctrl_g_U(150, 500)
+endfunc
+
" Preinsert longest prefix when autocomplete
func Test_autocomplete_longest()
func GetLine()
diff --git a/src/version.c b/src/version.c
index 696a78c40..784016772 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 748,
/**/
747,
/**/
Reply all
Reply to author
Forward
0 new messages