Wie lade ich alle vim-Fenster gleichzeitig neu?

70

Ich habe ein paar Dateien in vim in mehreren Fenstern geöffnet. Gibt es einen Befehl wie: e, der die Puffer für alle geöffneten Dateien neu lädt? Ich brauche das, weil ich manchmal einige der Dateien mit einem anderen Editor ändere, während sie auch in vim geöffnet sind.

Dan
quelle

Antworten:

105

Der :windoBefehl funktioniert für Windows genauso :bufdowie für Puffer. Das ist:

 :windo e

sollte durch alle sichtbaren Fenster blättern (dh nicht durch Fenster auf anderen Registerkarten, falls vorhanden) und den :eBefehl ausführen . Gleichfalls:

 :bufdo e

würde alle Puffer in der Pufferliste durchlaufen (dh keine "versteckten" Puffer) und den gleichen Befehl ausführen.

Beachten Sie, dass die Pufferliste möglicherweise Puffer enthält, die derzeit in keinem Fenster angezeigt werden. Ob Sie es verwenden :windo eoder :bufdo edavon abhängen, was Sie wollen.

Relevante Hilfe finden Sie hier: http://vimdoc.sourceforge.net/htmldoc/windows.html#list-repeat

Herbert Sitz
quelle
37
Ebenso :tabdo ewürde alle Fenster in allen Registerkarten neu laden
rewolf
8
Hmm, ich habe es nicht versucht, aber um Split-Window-Fälle abzudecken, wäre das nicht erforderlich :tabdo exec 'windo e'?
Herbert Sitz
5
Du hast recht - mein schlechtes. :tabdo eLädt nur das erste Fenster in jeder Registerkarte neu. Danke :) erklärt, warum ich gestern Probleme hatte
rewolf
Ich stelle fest, dass dadurch die Syntaxhervorhebung bei einigen Puffern entfernt wird. Ich musste zu diesen Puffern gehen und sie manuell eingeben :e. Gibt es eine Möglichkeit, die Syntaxhervorhebung beizubehalten? Ich verwende Vim 8.0 (12. September 2016).
Jin
10

Vim lädt automatisch Puffer neu, die extern geändert wurden (und keine nicht gespeicherten Änderungen haben), wenn Sie die Option "Autoread" aktivieren.

Jamessan
quelle
3

Wie wäre es mit

:bufdo e
Wernight
quelle