diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-11-28 11:46:20 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-28 11:46:20 +0800 |
commit | e6d38c7dac2e079d9b0f1621fef193bca858664f (patch) | |
tree | d585eff109bbf28495e55bed109261c5577a1d59 /src | |
parent | 1a8f60c7d2699826b51f23b040b83b1d96a14930 (diff) | |
download | rneovim-e6d38c7dac2e079d9b0f1621fef193bca858664f.tar.gz rneovim-e6d38c7dac2e079d9b0f1621fef193bca858664f.tar.bz2 rneovim-e6d38c7dac2e079d9b0f1621fef193bca858664f.zip |
vim-patch:9.0.2133: Cannot detect overstrike mode in Cmdline mode (#26263)
Problem: Cannot detect overstrike mode in Cmdline mode
Solution: Make mode() return "cr" for overstrike
closes: vim/vim#13569
https://github.com/vim/vim/commit/d1c3ef1f47c87d1da056c56564e1985fe6f2931d
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 { |