aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.lua2
-rw-r--r--src/nvim/ex_getln.c4
-rw-r--r--src/nvim/state.c4
3 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
index 79ebc728fe..32a5fac4a0 100644
--- a/src/nvim/eval.lua
+++ b/src/nvim/eval.lua
@@ -7038,7 +7038,9 @@ M.funcs = {
Rvc Virtual Replace mode completion |compl-generic|
Rvx Virtual Replace mode |i_CTRL-X| completion
c Command-line editing
+ cr Command-line while in overstrike mode |c_<Insert>|
cv Vim Ex mode |gQ|
+ cvr Vim Ex while in overstrike mode |c_<Insert>|
r Hit-enter prompt
rm The -- more -- prompt
r? A |:confirm| query of some sort
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index f302f44dad..37af6b6a44 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -1835,8 +1835,10 @@ static int command_line_handle_key(CommandLineState *s)
case K_INS:
case K_KINS:
ccline.overstrike = !ccline.overstrike;
-
ui_cursor_shape(); // may show different cursor shape
+ may_trigger_modechanged();
+ status_redraw_curbuf();
+ redraw_statuslines();
return command_line_not_changed(s);
case Ctrl_HAT:
diff --git a/src/nvim/state.c b/src/nvim/state.c
index 1402bff425..76d75cf1fb 100644
--- a/src/nvim/state.c
+++ b/src/nvim/state.c
@@ -8,6 +8,7 @@
#include "nvim/eval/typval.h"
#include "nvim/event/defs.h"
#include "nvim/event/multiqueue.h"
+#include "nvim/ex_getln.h"
#include "nvim/getchar.h"
#include "nvim/globals.h"
#include "nvim/insexpand.h"
@@ -210,6 +211,9 @@ void get_mode(char *buf)
if (exmode_active) {
buf[i++] = 'v';
}
+ if ((State & MODE_CMDLINE) && cmdline_overstrike()) {
+ buf[i++] = 'r';
+ }
} else if (State & MODE_TERMINAL) {
buf[i++] = 't';
} else {