我想在每个粘贴的行后面自动添加一个指定的数字,这个数字每过一次都会增加。
有时我想声明许多变量。所以我写了一个声明并复制(猛拉)它并过去到第二行。然后我可以用点运算符“。”重复这个操作。但是让这些变量变化非常烦人。
我想实现这样的目标:
variable (yy) variable1 (yy)
variable (p) variable2 (p)
variable (.) => variable3 (.)
variable (.) variable4 (.)
variable (.) variable5 (.)
是否可以仅在vim中执行此类操作?
答案 0 :(得分:1)
我不知道是否有人可以通过ultisnips插值来实现,我认为这是可能的,但我想出了这个解决方案
yy4p .......... copy 4 times
v} ............ select block
g<Ctrl-a> ..... increase the sequence
直到这里你有一个快速增加数字的主要解决方案
fy ............ jump to the first 'y'
<Ctrl-v> ...... start selection block
3jl ........... extend selection
c.<Esc> ....... swich 'yy' with .
fy. ........... finishes
使用宏
qa ............ start recording marcro 'a'
yyp ........... copy line
ci(.<Esc> ..... change first ()
Ctrl-a ........ increase
ci(. .......... change second ()
Esc ........... stop recording macro 'a'
3@a ........... 4x macro 'a'
答案 1 :(得分:0)
:%s/variable/\= printf("variable%d",line('.')-6)/
或者如果你有一个支持perl的vim(在很多linux发行版中都是默认的)
:perldo s/variable/$& . ++$n/e
答案 2 :(得分:0)
我的UnconditionalPaste plugin有gpp
和gPp
映射(以及更多的粘贴变体)。第一个只增加第一个十进制数,第二个增加所有数字。
所以,从
开始variable1 = 'foo1'
yygpp
将创建:
variable1 = 'foo1'
variable2 = 'foo1'
而yygPp
会这样做:
variable1 = 'foo1'
variable2 = 'foo2'
这些支持[count]
,也可以.
重复。