diff options
author | watiko <service@mail.watiko.net> | 2016-01-14 17:06:55 +0900 |
---|---|---|
committer | watiko <service@mail.watiko.net> | 2016-02-01 03:43:36 +0900 |
commit | 4d074e39ea1228e4f04c70ecfe4e1196a9638176 (patch) | |
tree | fc56179f5b08eac3233d961c79e5b2ee49f2f577 /src/nvim/normal.c | |
parent | 8f22031708b351ec5bb73952e6afc39b07a72ae2 (diff) | |
download | rneovim-4d074e39ea1228e4f04c70ecfe4e1196a9638176.tar.gz rneovim-4d074e39ea1228e4f04c70ecfe4e1196a9638176.tar.bz2 rneovim-4d074e39ea1228e4f04c70ecfe4e1196a9638176.zip |
vim-patch:7.4.754
Problem: Using CTRL-A in Visual mode does not work well. (Gary Johnson)
Solution: Make it increment all numbers in the Visual area. (Christian
Brabandt)
https://github.com/vim/vim/commit/3a304b23823b089e499063e8211c5695d049f3ba
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index a116b5a0bd..684467d26a 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -3503,9 +3503,17 @@ static void nv_help(cmdarg_T *cap) */ static void nv_addsub(cmdarg_T *cap) { - if (!checkclearopq(cap->oap) - && do_addsub(cap->cmdchar, cap->count1)) + 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); + } else { + clearopbeep(cap->oap); + } + if (visual) { + VIsual_active = false; + redraw_later(CLEAR); + } } /* @@ -6327,9 +6335,19 @@ static void nv_g_cmd(cmdarg_T *cap) bool flag = false; switch (cap->nchar) { - /* - * "gR": Enter virtual replace mode. - */ + // "g^A/g^X": Sequentially increment visually selected region. + case Ctrl_A: + case Ctrl_X: + if (VIsual_active) { + cap->arg = true; + cap->cmdchar = cap->nchar; + nv_addsub(cap); + } else { + clearopbeep(oap); + } + break; + + // "gR": Enter virtual replace mode. case 'R': cap->arg = true; nv_Replace(cap); |