我有以下代码:
@synthesize property1;
@synthesize property2;
@synthesize property3;
@synthesize property4;
我希望他们像
一样结束@synthesize property1 = _property1;
@synthesize property2 = _property2;
@synthesize property3 = _property3;
@synthesize property4 = _property4;
我正在使用Vim并且一直试图提出一个解决方案来计算空间和;
之间的属性名称,但是我尝试过的所有内容都给了我一个匹配,包括两个分隔符。< / p>
答案 0 :(得分:4)
试试这个:
:%s#^\(@synthesize\s\)\(.*\);#\1\2 = _\2;#
答案 1 :(得分:2)
这是我猜的最小的一个:
:1,4s/\([a-z0-9]\+\);/\1 = _\1;/g
请注意,1,4是要应用此搜索/替换的行。
找到答案 2 :(得分:2)
可以使用简洁的替换命令来解决问题。
:%s/@synthesize \zs\w\+/& = _&/
答案 3 :(得分:0)
:perldo s / \ @ \ w + \ s \ K(。*?); / = _ $ 1; / g