vim-patch:7.4.818

Problem:    'linebreak' breaks c% if the last Visual selection was block.
            (Chris Morganiser, Issue 389)
Solution:   Handle Visual block mode differently. (Christian Brabandt)

89c17c02ca
This commit is contained in:
watiko 2016-02-11 15:56:46 +09:00
parent 84281bf675
commit 66571f64a4
4 changed files with 17 additions and 4 deletions

View File

@ -7782,7 +7782,7 @@ static void nv_open(cmdarg_T *cap)
n_opencmd(cap);
}
// calculate start/end virtual columns for operating in block mode
// Calculate start/end virtual columns for operating in block mode.
static void get_op_vcol(
oparg_T *oap,
colnr_T redo_VIsual_vcol,
@ -7792,11 +7792,14 @@ static void get_op_vcol(
colnr_T start;
colnr_T end;
if (VIsual_mode != Ctrl_V) {
if (VIsual_mode != Ctrl_V
|| (!initial && oap->end.col < curwin->w_width)) {
return;
}
if (VIsual_active) {
oap->motion_type = MBLOCK;
}
// prevent from moving onto a trail byte
if (has_mbyte) {

View File

@ -81,6 +81,13 @@ Go
aaa
aaa
a2k2j~e.
:let g:test ="Test 10: using normal commands after block-visual"
:$put =g:test
:set linebreak
Go
abcd{ef
ghijklm
no}pqrs2k0f{c%
:%w! test.out
:qa!
ENDTEST

View File

@ -46,3 +46,6 @@ Test 9: using redo after block visual mode
AaA
AaA
A
Test 10: using normal commands after block-visual
abcdpqrs

View File

@ -470,7 +470,7 @@ static int included_patches[] = {
// 821,
820,
// 819,
// 818,
818,
817,
816,
815,