diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-05-07 10:52:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-07 10:52:36 +0200 |
commit | 8c9f0f1da1249bf423672ed7e408877d4f1f257f (patch) | |
tree | 950bc357a94fbba469b9d3a3d5695e798414f064 /src/nvim/ops.c | |
parent | 21035cff9f1d279e3cb5ec866916bfa231cdbaa2 (diff) | |
parent | 37c8067226779f1b98a41454949c986f740f4e0e (diff) | |
download | rneovim-8c9f0f1da1249bf423672ed7e408877d4f1f257f.tar.gz rneovim-8c9f0f1da1249bf423672ed7e408877d4f1f257f.tar.bz2 rneovim-8c9f0f1da1249bf423672ed7e408877d4f1f257f.zip |
Merge pull request #14502 from chentau/extmark_paste
Splice extmarks on every line for block visual paste
Diffstat (limited to 'src/nvim/ops.c')
-rw-r--r-- | src/nvim/ops.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c index 54d73b6ae7..10b8ebdc22 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -3334,6 +3334,9 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags) changed_cline_bef_curs(); curwin->w_cursor.col += (colnr_T)(totlen - 1); } + changed_bytes(lnum, col); + extmark_splice_cols(curbuf, (int)lnum-1, col, + 0, (int)totlen, kExtmarkUndo); } if (VIsual_active) { lnum++; @@ -3345,12 +3348,10 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags) } curbuf->b_op_end = curwin->w_cursor; - /* For "CTRL-O p" in Insert mode, put cursor after last char */ - if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND))) - ++curwin->w_cursor.col; - changed_bytes(lnum, col); - extmark_splice_cols(curbuf, (int)lnum-1, col, - 0, (int)totlen, kExtmarkUndo); + // For "CTRL-O p" in Insert mode, put cursor after last char + if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND))) { + curwin->w_cursor.col++; + } } else { // Insert at least one line. When y_type is kMTCharWise, break the first // line in two. |