-1

最近のマインクラフトに関しては、私はひどい人でした。私はそれらすべての ID を完全に書き直す必要があるところまで改造しました。唯一の問題は...それらのいずれかが元のゲームと衝突するかどうかは言うまでもなく、それらを1回書き直すのに約2時間かかるということです. そのため、時間を節約するために Vim を使用することにしましたが、ここで役立つ投稿をいくつか読んだ後でも、代替機能/コマンドについては最小限しか知りません。これが私がやろうとしていることです:これを置き換えます

I:exampleModnamePath.id=16389
I:exampleModnamePat2.id=19657

等。

これとともに

I:exampleModnamePath.id=20000
I:exampleModnamePath.id=20001

等。

これはしばらく続きますが、答えてくれた人には、どのように機能するのか教えていただけないでしょうか。

4

2 に答える 2

1

あなたの閲覧のために:

:let g:num = 1
:g/\.id=\d\+$/exec 's!\.id=\d\+$!.id='.g:num.'! | let g:num=g:num+1'

これは、電子ブックの章に (再) 番号を付けるためのコードを少し簡略化したものです。

一言で言えば:g、影響を受ける行に何かを実行するために使用します。:exec新しい置換コマンドを生成/実行し、カウンターをインクリメントするために使用します。一度試してみて、そのトリックが機能することに驚きました。:g//s///以前のコンボのいじりに触発されました。

于 2012-12-18T01:52:11.507 に答える
0

置換に使用する番号を選択するために使用しているルールが何であるかはわかりませんが、以前の番号と衝突しない新しい番号だけが必要な場合は、最初の数字を何かに置き換えてみてください。使用しない範囲。16389 を 76389 に置き換えるようなもの

これを行うには、これを使用できます:s/Path.id=.\(.*\)/Path.id=7\1

これは、文字列 Path.id= の後に単一の文字が続き、さらに文字のグループが続く文字列を検索します。これを文字列 Path.id=7 と以前に選択したグループに置き換えます。

特定のタイプのパスのみに一致するように、 Path.id の前に文字を追加して、より選択的にすることができます。

于 2012-12-14T15:20:14.627 に答える