diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-05-25 13:12:36 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-05-25 13:12:36 +0200 |
commit | 6057b9c658d9f05286675ee417bf1de9d3ca5aff (patch) | |
tree | 5894685d1d9f1439639f74a018a2af6a63f9955a /src/normal.c | |
parent | bef1c36ab66a387dbcc87c424030e0cdcb728e69 (diff) | |
download | vim-6057b9c658d9f05286675ee417bf1de9d3ca5aff.zip |
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)
Diffstat (limited to 'src/normal.c')
-rw-r--r-- | src/normal.c | 18 |
1 files changed, 12 insertions, 6 deletions
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); + } } } } |