Halli hallo,
ich suche nach einer Möglichkeit, eine vi-Skriptdatei auf alle geladenen Files anzuwenden, da ich in einer großen Zahl von Dokumenten etwas replacen will.
Mit
vi *.html -s skripdatei
wird die Skriptdatei nur einmal abgearbeitet, und wenn sie zu Ende ist, bleiben die übrigen Files unberührt. Ich habe daher bisher den uneleganten Weg gewählt, die Skriptdatei folgendermaßen zu gestalen:
:g/SUCHSTRING/s//ERSATZSTRING/g
:w
:next
Dann habe die obigen 3 Zeilen einfach sehr oft nacheinander in die Skriptdatei kopiert.
Mit dieser Methode müsste man aber für sehr viele Files den obigen Block sehr oft in der Skriptdatei wiederholen, was diese sehr groß macht, und darüber hinaus weiß ich vorher auch gar nicht, wieviele Files es genau sind (und müsste dann das Skript ggf. jedesmal erweitern).
Gibt es vielleicht eine flexiblere Lösung, mit der ich ein Skript auf alle geöffneten Files anwenden kann? Vielleicht mit einem (bedingten) Historykommando (?) oder einen Kommandozeilenparameter, den ich bisher noch nicht entdeckt habe?
Vielen Dank im Voraus,
Mirko