Mercurial > vim
changeset 31680:24d9c23bf665 v9.0.1172
patch 9.0.1172: when 'selection' is "exclusive" then "1v" is one char short
Commit: https://github.com/vim/vim/commit/79c11e399be3d96ed6d1c7458b1380e878ec717b
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 10 17:29:29 2023 +0000
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 https://github.com/vim/vim/issues/11791)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 10 Jan 2023 18:30:04 +0100 |
parents | ba5b5ed7d62c |
children | fd9c778c9452 |
files | src/normal.c src/testdir/test_visual.vim src/version.c |
diffstat | 3 files changed, 17 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -5472,7 +5472,9 @@ nv_visual(cmdarg_T *cap) if (resel_VIsual_line_count <= 1) { 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 curwin->w_curswant = resel_VIsual_vcol;
--- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -1336,6 +1336,18 @@ func Test_visual_reselect_with_count() bwipe! 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() new " The number of characters are tuned to fill a 4096 byte allocated block,