I doubt anyone here will be able to tell you exactly why there's no <C-a>
for visual block mode.
The best we can do is help you find an efficient way to achieve your goal.
Plugins like VisIncr by DrChip or speeddating by Tim Pope are specifically designed to address that "missing feature".
If your needs are relatively simple, like in your example, a simple :norm <C-v><C-a>
could be enough. Maybe with a mapping…
xnoremap <C-a> :normal! ^A
(The ^A
is obtained with <C-v><C-a>
.)
(edit)
A more generic approach exists but it is not very finger-friendly:
:'<,'>s/\%V\d\+/\=submatch(0) + 1/g
You could map it, of course, and make it a little smarter:
xnoremap <C-a> :<C-u>let vcount = v:count ? v:count : 1 <bar> '<,'>s/\%V\d\+/\=submatch(0) + vcount <cr>gv
And give it a friend:
xnoremap <C-x> :<C-u>let vcount = v:count ? v:count : 1 <bar> '<,'>s/\%V\d\+/\=submatch(0) - vcount <cr>gv
With those mappings you can do <C-a><C-a><C-a>
and <C-x><C-x><C-x>
while retaining the visual block or 8<C-a>
/12<C-x>
.
(endedit)