在 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/
是否可以通过模式增加 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/