在 vim 编辑器中按模式增加光标下的数字

Increment the number under the curser in vim editor by a pattern

是否可以通过模式增加 vim 编辑器中光标下的数字。例如我需要这样:

编辑前:

15 Apple
15 Orange
15 Mango
15 Grape
15 Pineapple
15 Tomato
15 Plum
15 Cherry

编辑后

18 Apple
19 Orange
20 Mango
21 Grape
22 Pineapple
23 Tomato
24 Plum
25 Cherry

表示第一个增加了3,第二个增加了4,第​​三个 5等。 我正在考虑录音回放。 但是每递增的值加一。 (模式如 3、4、5、6、7、8 等,

请让我知道任何人有解决方案。

如能实现如下同样感激不尽

16 Apple
17 Orange
18 Mango
19 Grape
20 Pineapple
21 Tomato
22 Plum
23 Cherry

图案以 1 开头。(图案为 1、2、3、4、5、6 等。

使用 var 保存计数,并结合 g 和 s

:let n=15+3|g/^\d\+/exec "s//".n|let n=n+1

另一种方式,使用(ctrl-a) 先移到15,改成17。然后"ayiw保存到寄存器a。 然后就可以录制宏了,使用:

qqciw<C-r>a<esc><C-a>"ayiwjq,最后重复宏q@q

除了用变量来控制+1,还有另一种方法。首先看一下你的文本块中第一行的行号,假设是7,那么你可以:

:7,$s/^\d\+\ze/\=submatch(0)+3+line('.')-7/

比如是第一行,可以把7改成1:

 :%s/^\d\+\ze/\=submatch(0)+3+line('.')-1/