diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.lua | 2 | ||||
-rw-r--r-- | src/nvim/ex_getln.c | 4 | ||||
-rw-r--r-- | src/nvim/state.c | 4 |
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 { |