aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-05-30 21:58:16 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-05-31 21:06:11 -0400
commite39973156173ce8511ff1ae88eec19a3200e08d8 (patch)
treef87733727d0cc8dedb89560da0694a3238bef7d7 /src/nvim/normal.c
parent73e3669c7a8e2d4f63be17e0f93ee3c641f8806f (diff)
downloadrneovim-e39973156173ce8511ff1ae88eec19a3200e08d8.tar.gz
rneovim-e39973156173ce8511ff1ae88eec19a3200e08d8.tar.bz2
rneovim-e39973156173ce8511ff1ae88eec19a3200e08d8.zip
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.
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c12
1 files changed, 10 insertions, 2 deletions
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) {