diff options
-rw-r--r-- | src/nvim/ex_getln.c | 2 | ||||
-rw-r--r-- | test/functional/ui/cmdline_spec.lua | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index ece2b59bc6..b16023b0ec 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -366,7 +366,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent) // redraw the statusline for statuslines that display the current mode // using the mode() function. - if (KeyTyped && msg_scrolled == 0) { + if (!cmd_silent && msg_scrolled == 0) { curwin->w_redr_status = true; redraw_statuslines(); } diff --git a/test/functional/ui/cmdline_spec.lua b/test/functional/ui/cmdline_spec.lua index 16be846647..5d563895d6 100644 --- a/test/functional/ui/cmdline_spec.lua +++ b/test/functional/ui/cmdline_spec.lua @@ -116,6 +116,31 @@ local function test_cmdline(linegrid) }}} end) + it('from normal mode when : is mapped', function() + command('nnoremap ; :') + + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {3:n }| + | + ]]} + + feed(';') + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {3:c }| + | + ]], cmdline={{ + firstc = ":", + content = {{""}}, + pos = 0, + }}} + end) + it('but not with scrolled messages', function() screen:try_resize(35,10) feed(':echoerr doesnotexist<cr>') |