aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorwatiko <service@mail.watiko.net>2016-01-14 18:49:35 +0900
committerwatiko <service@mail.watiko.net>2016-02-01 03:43:36 +0900
commit5ef1cb5c2e77e3df70d93ade9afb54a3e989a3ee (patch)
tree065e87ff69e50f7c8030913697374ca0da91d9ff /src/nvim/normal.c
parent6d1b948b6b98d34b1ca8c62a7bb6d08f85f85491 (diff)
downloadrneovim-5ef1cb5c2e77e3df70d93ade9afb54a3e989a3ee.tar.gz
rneovim-5ef1cb5c2e77e3df70d93ade9afb54a3e989a3ee.tar.bz2
rneovim-5ef1cb5c2e77e3df70d93ade9afb54a3e989a3ee.zip
vim-patch:7.4.765
Problem: CTRL-A and CTRL-X in Visual mode do not always work well. Solution: Improvements for increment and decrement. (Christian Brabandt) https://github.com/vim/vim/commit/9bb1930af908338b68588e988be9601ad144af07
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 684467d26a..d831679b64 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -3506,7 +3506,21 @@ static void nv_addsub(cmdarg_T *cap)
bool 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);
}