diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-02-26 23:25:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-26 23:25:37 +0800 |
commit | ed58580dfe51faba6a35adb43322e0991e48e4c6 (patch) | |
tree | 02d426b284c36d86d34277fde62ceede99545044 /src/nvim/normal.c | |
parent | 48990a7077bb6767f3d218907344ee7fb0bfaaff (diff) | |
parent | 6644742c26e4d8da999cf00754b6e6ee0ba0618f (diff) | |
download | rneovim-ed58580dfe51faba6a35adb43322e0991e48e4c6.tar.gz rneovim-ed58580dfe51faba6a35adb43322e0991e48e4c6.tar.bz2 rneovim-ed58580dfe51faba6a35adb43322e0991e48e4c6.zip |
Merge pull request #22411 from zeertzjq/vim-9.0.1354
vim-patch:9.0.{1354,1356}: "gr CTRL-G" stays in virtual replace mode
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 5677c627a7..ef8f6e7b0f 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -4710,7 +4710,7 @@ static void nv_vreplace(cmdarg_T *cap) return; } - if (checkclearopq(cap->oap)) { + if (checkclearopq(cap->oap) || cap->extra_char == ESC) { return; } @@ -4720,6 +4720,11 @@ static void nv_vreplace(cmdarg_T *cap) if (cap->extra_char == Ctrl_V) { // get another character cap->extra_char = get_literal(false); } + if (cap->extra_char < ' ') { + // Prefix a control character with CTRL-V to avoid it being used as + // a command. + stuffcharReadbuff(Ctrl_V); + } stuffcharReadbuff(cap->extra_char); stuffcharReadbuff(ESC); if (virtual_active()) { |