diff --git a/src/insexpand.c b/src/insexpand.c index df757ce9b..856c06d59 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -2498,6 +2498,9 @@ ins_compl_stop(int c, int prev_mode, int retval) retval = TRUE; } + if ((c == Ctrl_W || c == Ctrl_U) && ins_compl_preinsert_effect()) + ins_compl_delete(); + auto_format(FALSE, TRUE); // Trigger the CompleteDonePre event to give scripts a chance to diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index 49e44653a..5d24d51d6 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -3103,6 +3103,14 @@ function Test_completeopt_preinsert() call assert_equal("fo ", getline('.')) call assert_equal(3, col('.')) + call feedkeys("She\\\", 'tx') + call assert_equal("", getline('.')) + call assert_equal(1, col('.')) + + call feedkeys("She\\\", 'tx') + call assert_equal("", getline('.')) + call assert_equal(1, col('.')) + " whole line call feedkeys("Shello hero\\\", 'tx') call assert_equal("hello hero", getline('.')) diff --git a/src/version.c b/src/version.c index 7137c675b..f9d99a5dc 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1069, /**/ 1068, /**/