summaryrefslogtreecommitdiff
path: root/src/normal.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2015-07-03 12:44:07 +0200
committerBram Moolenaar <Bram@vim.org>2015-07-03 12:44:07 +0200
commit9bb1930af908338b68588e988be9601ad144af07 (patch)
tree8af685485a0861282fe3229fa48c812cff8d290e /src/normal.c
parent6a57cce04801d3e8fe30d0dcd31f9325b38de2fe (diff)
downloadvim-git-9bb1930af908338b68588e988be9601ad144af07.tar.gz
patch 7.4.765v7.4.765
Problem: CTRL-A and CTRL-X in Visual mode do not always work well. Solution: Improvements for increment and decrement. (Christian Brabandt)
Diffstat (limited to 'src/normal.c')
-rw-r--r--src/normal.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/normal.c b/src/normal.c
index 8d8be9b0c..a38538fcd 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -4204,7 +4204,24 @@ nv_addsub(cap)
int visual = VIsual_active;
if (cap->oap->op_type == OP_NOP
&& do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK)
- prep_redo_cmd(cap);
+ {
+ if (visual)
+ {
+ ResetRedobuff();
+ AppendCharToRedobuff(VIsual_mode);
+ if (VIsual_mode == 'V')
+ {
+ AppendNumberToRedobuff(cap->oap->line_count);
+ AppendCharToRedobuff('j');
+ }
+ AppendNumberToRedobuff(cap->count1);
+ if (cap->nchar != NUL)
+ AppendCharToRedobuff(cap->nchar);
+ AppendCharToRedobuff(cap->cmdchar);
+ }
+ else
+ prep_redo_cmd(cap);
+ }
else
clearopbeep(cap->oap);
if (visual)