forked from aniani/vim
patch 9.0.1172: when 'selection' is "exclusive" then "1v" is one char short
Problem: When 'selection' is "exclusive" then "1v" is one char short. Solution: Add one character when 'selection' is "exclusive. (closes #11791)
This commit is contained in:
@@ -5472,7 +5472,9 @@ nv_visual(cmdarg_T *cap)
|
|||||||
if (resel_VIsual_line_count <= 1)
|
if (resel_VIsual_line_count <= 1)
|
||||||
{
|
{
|
||||||
update_curswant_force();
|
update_curswant_force();
|
||||||
curwin->w_curswant += resel_VIsual_vcol * cap->count0 - 1;
|
curwin->w_curswant += resel_VIsual_vcol * cap->count0;
|
||||||
|
if (*p_sel != 'e')
|
||||||
|
--curwin->w_curswant;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
curwin->w_curswant = resel_VIsual_vcol;
|
curwin->w_curswant = resel_VIsual_vcol;
|
||||||
|
@@ -1336,6 +1336,18 @@ func Test_visual_reselect_with_count()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_visual_reselect_exclusive()
|
||||||
|
new
|
||||||
|
call setline(1, ['abcde', 'abcde'])
|
||||||
|
set selection=exclusive
|
||||||
|
normal 1G0viwd
|
||||||
|
normal 2G01vd
|
||||||
|
call assert_equal(['', ''], getline(1, 2))
|
||||||
|
|
||||||
|
set selection&
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_visual_block_insert_round_off()
|
func Test_visual_block_insert_round_off()
|
||||||
new
|
new
|
||||||
" The number of characters are tuned to fill a 4096 byte allocated block,
|
" The number of characters are tuned to fill a 4096 byte allocated block,
|
||||||
|
@@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1172,
|
||||||
/**/
|
/**/
|
||||||
1171,
|
1171,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user