aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-26 23:25:37 +0800
committerGitHub <noreply@github.com>2023-02-26 23:25:37 +0800
commited58580dfe51faba6a35adb43322e0991e48e4c6 (patch)
tree02d426b284c36d86d34277fde62ceede99545044 /src/nvim/normal.c
parent48990a7077bb6767f3d218907344ee7fb0bfaaff (diff)
parent6644742c26e4d8da999cf00754b6e6ee0ba0618f (diff)
downloadrneovim-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.c7
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()) {