毎日編集する必要のある複数のXMLファイルがあります。これらのファイルを読み取るソースを制御することも、XMLの形式を制御することもできません。
問題は、各要素が各ブロック内に独自の連続番号を必要とすることです。各ブロック内に200以上の要素が存在する場合があります。既存の長いブロックの早い段階でコマンドを挿入する必要がある場合は、面倒でエラーが発生しやすい後続の各要素に手動で番号を付け直す必要があります。
また、名前と値のペアは、必要な連番とは関係ありません。以下の値「origcmd1」は「foobar98765」である可能性があります。それらは私の問題を説明するためだけの数です。
例:
これから始めて:
<block1>
<cmd1 name="origcmd1"></cmd1>
<cmd2 name="origcmd2">someCmdsTakeParams,param2</cmd2>
<cmd3 name="origcmd3"></cmd3>
</block1>
<block3> <c>no guarantee blocks are sequential #</c>
<cmd1 name="cmd1"></cmd1>
<cmd2 name="cmd2"></cmd2>
<cmd3 name="cmd3"></cmd3>
</block3>
早い段階でコマンドを追加する必要がある場合、たとえばorigcmd1とorigcmd2の間で次のようにします。
<block1>
<cmd1 name="origcmd1"></cmd1>
<cmd2 name="NEWcmd1"></cmd2> <c>cmd2 & cmd3 inserted</c>
<cmd3 name="NEWcmd1"></cmd3>
<cmd4 name="origcmd2">someCmdsTakeParams,param2</cmd4>
<cmd5 name="origcmd3"></cmd5>
</block1>
<block3> <c>no guarantee blocks are sequential #</c>
<cmd1 name="cmd1"></cmd1>
<cmd2 name="cmd2"></cmd2>
<cmd3 name="cmd3"></cmd3>
</block3>
ここで、cmd4とcmd5を確認し、手動で番号を付け直す必要があります。何百ものコマンドがある場合、これは非常にイライラします。
これまでの解決策には、最初の行から番号を付け直すマクロを作成して、常に正しく番号が1であると想定することが含まれています。次に、一連の削除/貼り付けとCtrl-aを使用して、後続の各行番号をインクリメントします。残念ながら、マクロを正しく機能させることはできませんでした。
また、vim.orgでvimプラグインを調べましたが、解決策として認識できるものは何も見つかりませんでした。
Vimは私にとっては初めてのことですが、私はそれを気に入っており、これは解決に適したタイプの問題のようです。私が見逃した速いテクニックやプラグインに関するアイデアはありがたいです。