1

私は次のコードを持っています:

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

のように終わらせたい

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

私は Vim を使用しており、スペースと の間のプロパティ名を計算するソリューションを考え出そうとしています;が、私が試したすべての方法で、2 つの区切り文字を含む一致が得られました。

4

4 に答える 4

4

これを試して:

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

この問題を解決するには、簡潔な置換コマンドを使用できます。

:%s/@synthesize \zs\w\+/& = _&/
于 2012-05-12T13:50:27.870 に答える
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 に答える
0
:perldo s/\@\w+\s\K(.*?);/ = _$1;/g
于 2012-05-13T23:56:42.253 に答える