Mercurial > vim
changeset 3537:d83218a156dd v7.3.529
updated for version 7.3.529
Problem: Using a count before "v" and "V" does not work (Kikyous)
Solution: Make the count select that many characters or lines. (Christian
Brabandt)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 25 May 2012 13:12:36 +0200 |
parents | 77433df8dabb |
children | 57b2fe37fd5b |
files | src/normal.c src/version.c |
diffstat | 2 files changed, 15 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -7660,13 +7660,9 @@ nv_visual(cap) else /* start Visual mode */ { check_visual_highlight(); - if (cap->count0) /* use previously selected part */ - { - if (resel_VIsual_mode == NUL) /* there is none */ - { - beep_flush(); - return; - } + if (cap->count0 > 0 && resel_VIsual_mode != NUL) + { + /* use previously selected part */ VIsual = curwin->w_cursor; VIsual_active = TRUE; @@ -7725,6 +7721,16 @@ nv_visual(cap) /* start Select mode when 'selectmode' contains "cmd" */ may_start_select('c'); n_start_visual_mode(cap->cmdchar); + if (VIsual_mode != 'V' && *p_sel == 'e') + ++cap->count1; /* include one more char */ + if (cap->count0 > 0 && --cap->count1 > 0) + { + /* With a count select that many characters or lines. */ + if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V) + nv_right(cap); + else if (VIsual_mode == 'V') + nv_down(cap); + } } } }