質問: ### 前提・実現したいこと Windows Installer XMLのソース内で ComponentのIDに子供のFileのNameの値に置換を行いたいです。 手作業で行っていたのですが数が多く時間がかかってしまいます。 エディタはVimを使用していますがこのような複雑な置換は可能でしょうか? ### 該当のソースコード ``` ... ... ``` 上のFileのNameの値hogeをComponentのIDに置換したいです。 現在のIDは32桁の乱数になっています。 よろしくお願いいたします。
回答: XML 全体がきれいに整形されているとして、恐らく以下のようにするといけると思います。 ``` %s//\=matchstr(getline(line('.')+1),'Name="\zs.\{-}\ze"')/g ``` Vim の置換では、置換後のテキストを `\=` で始めることで Vim script の式を指定できます。これを使って次の行からテキストを取ってきて置換してます。