VIM-Befehl für alle geöffneten Dateien verwenden

8

Ich habe eine Liste von Dateien, die ich mit diesem Befehl in VIM geöffnet habe:

%Vor%

Ich möchte diesen Befehl für alle geöffneten Dateien ausführen:

%Vor%

(aus den Zeilen 99 bis 104, fügen Sie einen Kommentar "#") ein & lt; - simple, works

Wenn ich den obigen Befehl zum Einfügen ausführen, funktioniert er wie erwartet in der aktuellen Datei. Wie bekomme ich VIM, um den gleichen Befehl für alle geöffneten Dateien auszuführen? Ich probierte :argdo , :windo , :bufdo , hatte aber kein Glück.

Irgendwelche Vorschläge?

    
Mike J 02.01.2013, 18:33
quelle

3 Antworten

11

Ich denke, bufdo würde funktionieren, wenn Sie set hidden (damit bufdo die Puffer ohne Speichern ändern kann) vor:

%Vor%

Speichern Sie dann alle Dateien mit :bufdo! w oder :wa .

(Hinweis: set hidden könnte auch durch set autowrite ersetzt werden. )

    
miku 02.01.2013, 18:36
quelle
3

Ich denke, sed wäre eine bessere Option, wenn Sie es verwenden können. sed ist ein Befehlszeileneditor und kein interaktiver Editor wie vim.

%Vor%     
Philip Aylesworth 02.01.2013 18:39
quelle
1

Da Sie alle Dateien als Argumente angegeben haben, ist :argdo der richtige Befehl. (Wenn Sie keine anderen Dateien öffnen, funktioniert auch :bufdo .) Wenn Sie :set hidden nicht möchten (wie in der anderen Antwort angegeben), müssen Sie den Puffer sofort über :update beibehalten. Da Sie einen :normal -Befehl verwenden, müssen Sie ihn in :execute einschließen, um einen anderen Ex-Befehl verketten zu können:

%Vor%     
Ingo Karkat 03.01.2013 01:07
quelle

Tags und Links