1

我有以下代码:

@synthesize property1;
@synthesize property2;
@synthesize property3;
@synthesize property4;

我希望他们像这样结束

@synthesize property1 = _property1;
@synthesize property2 = _property2;
@synthesize property3 = _property3;
@synthesize property4 = _property4;

我正在使用 Vim 并一直在尝试提出一个解决方案,该解决方案将计算空格和 之间的属性名称;,但我尝试过的所有内容都给了我一个匹配项,包括两个分隔符。

4

4 回答 4

4

试试这个:

:%s#^\(@synthesize\s\)\(.*\);#\1\2 = _\2;#
于 2012-05-12T13:19:05.897 回答
2

我猜这是最小的一个:

:1,4s/\([a-z0-9]\+\);/\1 = _\1;/g

请注意,这1,4是应用此搜索和替换命令的行范围。

更多细节可以在http://vim.wikia.com/wiki/Search_and_replace找到

于 2012-05-12T13:24:28.770 回答
2

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

:%s/@synthesize \zs\w\+/& = _&/
于 2012-05-12T13:50:27.870 回答
0
:perldo s/\@\w+\s\K(.*?);/ = _$1;/g
于 2012-05-13T23:56:42.253 回答