1

次の問題があります

これはテキストです:

printf("sysname %s",ut.sysname);

sysnamevim を使用して行ごとに置き換えたい。gvim に次のコマンドを入力します。

:s/sysname/version

次のような出力を取得したい:

printf("version %s",ut.version);

しかし、次のような出力が得られます。

printf("version %s",ut.sysname);

私は何を間違っていますか?

4

2 に答える 2

6

g最初の行だけではなく、現在の行のすべての一致に適用されるコマンドがありません。

:s/sysname/version/g

おまけとして:

:%s/sysname/version/g

現在の行だけでなく、現在のファイルのすべてのオカレンスを置き換えます。

于 2013-06-13T15:55:20.987 に答える
0

1行で行うには

:s/sysname/version/g

また、qq入力する前にマクロレコーダーを使用し、後で押しqてから、 を使用@qして、それを置き換えたい他の行で再生することもできます。または、 を押し: upて古いコマンドを選択します。

または、すべての行でそれを行うには:

:%s/sysname/version/g

ただし、すべての行を置き換える場合は注意が必要です。テキストが多い場合は、置換をより具体的にしてみてください。

私はするだろう

:%s/\(printf("\)sysname\(.*\)sysname/\1version\2version

于 2013-06-13T15:57:22.093 に答える