From 2c9d21f722f91834978652a69a1ea72310dc1580 Mon Sep 17 00:00:00 2001 From: phanium <91544758+phanen@users.noreply.github.com> Date: Sat, 14 Jun 2025 15:33:45 +0800 Subject: [PATCH] fix: cursor shape don't resume after `:append` Problem: cursor shape don't resume after `:append`. e.g. `seq 1000 | nvim --clean +"se gcr+=c:ver25" -` Solution: emit missing ui event. --- src/nvim/ex_cmds.c | 1 + test/functional/ui/mode_spec.lua | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 5ee4608868..613c7a9d2c 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -2889,6 +2889,7 @@ void ex_append(exarg_T *eap) } } State = MODE_NORMAL; + ui_cursor_shape(); if (eap->forceit) { curbuf->b_p_ai = !curbuf->b_p_ai; diff --git a/test/functional/ui/mode_spec.lua b/test/functional/ui/mode_spec.lua index 01f4dda227..963602edad 100644 --- a/test/functional/ui/mode_spec.lua +++ b/test/functional/ui/mode_spec.lua @@ -43,6 +43,11 @@ describe('ui mode_change event', function() ]], mode = 'normal', } + + n.feed(':append') + screen:expect({ mode = 'cmdline_normal' }) + n.feed('') + screen:expect({ mode = 'normal' }) end) -- oldtest: Test_mouse_shape_after_failed_change()