From e39973156173ce8511ff1ae88eec19a3200e08d8 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 30 May 2021 21:58:16 -0400 Subject: vim-patch:8.2.2914: cannot paste a block without adding padding Problem: Cannot paste a block without adding padding. Solution: Add "zp" and "zP" which paste without adding padding. (Christian Brabandt, closes vim/vim#8289) https://github.com/vim/vim/commit/2fa9384ca1b600b934bec81a72c5fb7ce757503a Cherry-pick Test_normal_z_error() from patch v8.2.0369. --- src/nvim/normal.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/nvim/normal.c') diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 13706fb14a..173d8d46d1 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -4384,6 +4384,12 @@ dozet: } break; + // "zp", "zP" in block mode put without addind trailing spaces + case 'P': + case 'p': + nv_put(cap); + break; + /* "zF": create fold command */ /* "zf": create fold operator */ case 'F': @@ -7913,12 +7919,14 @@ static void nv_put_opt(cmdarg_T *cap, bool fix_indent) flags |= PUT_FIXINDENT; } else { dir = (cap->cmdchar == 'P' - || (cap->cmdchar == 'g' && cap->nchar == 'P')) - ? BACKWARD : FORWARD; + || ((cap->cmdchar == 'g' || cap->cmdchar == 'z') + && cap->nchar == 'P')) ? BACKWARD : FORWARD; } prep_redo_cmd(cap); if (cap->cmdchar == 'g') { flags |= PUT_CURSEND; + } else if (cap->cmdchar == 'z') { + flags |= PUT_BLOCK_INNER; } if (VIsual_active) { -- cgit