From 6057b9c658d9f05286675ee417bf1de9d3ca5aff Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 25 May 2012 13:12:36 +0200 Subject: 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) --- src/normal.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/normal.c') diff --git a/src/normal.c b/src/normal.c index e3a02553f..3c66a3773 100644 --- 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 (cap->count0 > 0 && resel_VIsual_mode != NUL) { - if (resel_VIsual_mode == NUL) /* there is none */ - { - beep_flush(); - return; - } + /* 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); + } } } } -- cgit v1.2.3