Mercurial > vim
changeset 5730:420fd9cb86d5 v7.4.210
updated for version 7.4.210
Problem: Visual block mode plus virtual edit doesn't work well with tabs.
(Liang Li)
Solution: Take coladd into account. (Christian Brabandt)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 19 Mar 2014 18:57:54 +0100 |
parents | b5cc3a0729b1 |
children | 70fac246bfe4 |
files | src/ops.c src/testdir/test39.in src/testdir/test39.ok src/version.c |
diffstat | 4 files changed, 30 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ops.c +++ b/src/ops.c @@ -2646,7 +2646,15 @@ op_insert(oap, count1) if (oap->start.lnum == curbuf->b_op_start_orig.lnum && !bd.is_MAX) { if (oap->op_type == OP_INSERT - && oap->start.col != curbuf->b_op_start_orig.col) + && oap->start.col +#ifdef FEAT_VIRTUALEDIT + + oap->start.coladd +#endif + != curbuf->b_op_start_orig.col +#ifdef FEAT_VIRTUALEDIT + + curbuf->b_op_start_orig.coladd +#endif + ) { oap->start.col = curbuf->b_op_start_orig.col; pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) @@ -2654,7 +2662,15 @@ op_insert(oap, count1) oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd); } else if (oap->op_type == OP_APPEND - && oap->end.col >= curbuf->b_op_start_orig.col) + && oap->end.col +#ifdef FEAT_VIRTUALEDIT + + oap->end.coladd +#endif + >= curbuf->b_op_start_orig.col +#ifdef FEAT_VIRTUALEDIT + + curbuf->b_op_start_orig.coladd +#endif + ) { oap->start.col = curbuf->b_op_start_orig.col; /* reset pre_textlen to the value of OP_INSERT */
--- a/src/testdir/test39.in +++ b/src/testdir/test39.in @@ -35,6 +35,12 @@ G$khhhhhkkcmno /^C23$/ :exe ":norm! l\<C-V>j$hhAab\<Esc>" :.,/^$/w >> test.out +:" Test for Visual block insert when virtualedit=all +:set ve=all +:/\t\tline +:exe ":norm! 07l\<C-V>jjIx\<Esc>" +:set ve= +:.,/^$/w >> test.out :" gUe must uppercase a whole word, also when ß changes to SS Gothe youtußeuu endYpk0wgUe :" gUfx must uppercase until x, inclusive. @@ -62,6 +68,10 @@ G3o987652k02l2jr :qa! ENDTEST + line1 + line2 + line3 + aaaaaa bbbbbb cccccc
index b459355c6ad756d297b58653a563c6c385360202..ef7a2c6442ca8ae973f2ca86e6105214a166180d GIT binary patch literal 481 zc$|ez%}&BV5cbL>zQgwdBzCu@zzu8@OpHCyP2{+{-2z(LnAn8+vc8Jb4JtGk=kU#Z zKQp6`-G{M-E4RD-%WHKY&B7ZOfJ5Dk;A?2QvNwUh+%3Ca;nTfx^0fvS$QT1KkhK<I zprR-M2BL+K+E5rxVs5k)5@+=O+tel|I=w$)RPAdQ47eC@N%X#R*kmeK>vgIWTwTx@ zUB=W)&n?E3uhR2O`jk)*1XtAM<6?#6fs%}y%1H>(-|w1>l$7#k_tUkle;NoGMiftH bSEt$Zb`o9SfB74q{6*VT^AJs0&hO|8MNoc-