neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit f7c1e460f8ae9e316a679a29945ce6a585336322
parent a2b9117ca8f8abe8d4c9e2d1bacb73b1902a4e1f
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Sun,  7 May 2023 08:31:06 +0800

vim-patch:8.2.2062: <Cmd> does not handle CTRL-V

Problem:    <Cmd> does not handle CTRL-V.
Solution:   Call get_literal() after encountering CTRL-V. (closes vim/vim#7387)

https://github.com/vim/vim/commit/4a44120e3dc1d40dd7109658afd5e078360b1d8f

Co-authored-by: Bram Moolenaar <Bram@vim.org>

Diffstat:
Msrc/nvim/getchar.c | 5+++++
Mtest/old/testdir/test_mapping.vim | 5+++++
2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c @@ -2927,6 +2927,11 @@ char *getcmdkeycmd(int promptc, void *cookie, int indent, bool do_concat) } c1 = TO_SPECIAL(c1, c2); } + if (c1 == Ctrl_V) { + // CTRL-V is followed by octal, hex or other characters, reverses + // what AppendToRedobuffLit() does. + c1 = get_literal(true); + } if (got_int) { aborted = true; diff --git a/test/old/testdir/test_mapping.vim b/test/old/testdir/test_mapping.vim @@ -1084,6 +1084,11 @@ func Test_map_cmdkey() unmap <F3> unmap! <F3> %bw! + + " command line ending in "0" is handled without errors + onoremap ix <cmd>eval 0<cr> + call feedkeys('dix.', 'xt') + ounmap ix endfunc " text object enters visual mode