Objective c 在Vim中,如何在空格和特殊字符之间运行匹配单词的替换?

Objective c 在Vim中,如何在空格和特殊字符之间运行匹配单词的替换?,objective-c,regex,vim,Objective C,Regex,Vim,我有以下代码: @synthesize property1; @synthesize property2; @synthesize property3; @synthesize property4; 我希望他们以这样的方式结束 @synthesize property1 = _property1; @synthesize property2 = _property2; @synthesize property3 = _property3; @synthesize property4 = _pr

我有以下代码:

@synthesize property1;
@synthesize property2;
@synthesize property3;
@synthesize property4;
我希望他们以这样的方式结束

@synthesize property1 = _property1;
@synthesize property2 = _property2;
@synthesize property3 = _property3;
@synthesize property4 = _property4;
我正在使用Vim,并且一直在尝试想出一个解决方案,将空间和;,之间的属性名称进行数学运算;,但是我尝试过的每件事都会给我一个匹配,包括两个分隔符。

试试这个:

:%s#^\(@synthesize\s\)\(.*\);#\1\2 = _\2;#
试试这个:

:%s#^\(@synthesize\s\)\(.*\);#\1\2 = _\2;#

我想这是最简单的一个:

:1,4s/\([a-z0-9]\+\);/\1 = _\1;/g
请注意,1,4是要应用此搜索和替换命令的行范围


更多详细信息可以在

上找到,我想这是最简单的一个:

:1,4s/\([a-z0-9]\+\);/\1 = _\1;/g
请注意,1,4是要应用此搜索和替换命令的行范围


有关详细信息,请参见

可以使用简明的替换命令来解决此问题:

:%s/@synthesize \zs\w\+/& = _&/

可以使用简明的替换命令来解决此问题:

:%s/@synthesize \zs\w\+/& = _&/
:perldo s/\@\w+\s\K.*?;/=_$1;/G :perldo s/\@\w+\s\K.*?;/=_$1;/G