diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-11-18 14:49:25 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2020-11-18 15:09:17 +0100 |
commit | 147917369ed8d372feaa9181acd249277636da26 (patch) | |
tree | fc01544bd3123e7aa2f253b28f3e23a398f7c667 /src/nvim/normal.c | |
parent | 8c4648421a1e34c3e95e42ea596de36987f02563 (diff) | |
download | rneovim-147917369ed8d372feaa9181acd249277636da26.tar.gz rneovim-147917369ed8d372feaa9181acd249277636da26.tar.bz2 rneovim-147917369ed8d372feaa9181acd249277636da26.zip |
vim-patch:8.2.2005: redoing a mapping with <Cmd> doesn't work properly
Problem: Redoing a mapping with <Cmd> doesn't work properly.
Solution: Fill the redo buffer. Use "<SNR>" instead of a key code.
(closes vim/vim#7282)
https://github.com/vim/vim/commit/c77534c303721df4024fd6cfd51098d593b7d4da
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 2805a7d74e..4b26ae259e 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -1485,7 +1485,8 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank) if ((redo_yank || oap->op_type != OP_YANK) && ((!VIsual_active || oap->motion_force) // Also redo Operator-pending Visual mode mappings. - || (cap->cmdchar == ':' && oap->op_type != OP_COLON)) + || ((cap->cmdchar == ':' || cap->cmdchar == K_COMMAND) + && oap->op_type != OP_COLON)) && cap->cmdchar != 'D' && oap->op_type != OP_FOLD && oap->op_type != OP_FOLDOPEN @@ -1678,7 +1679,7 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank) prep_redo(oap->regname, cap->count0, get_op_char(oap->op_type), get_extra_op_char(oap->op_type), oap->motion_force, cap->cmdchar, cap->nchar); - } else if (cap->cmdchar != ':') { + } else if (cap->cmdchar != ':' && cap->cmdchar != K_COMMAND) { int nchar = oap->op_type == OP_REPLACE ? cap->nchar : NUL; // reverse what nv_replace() did |