Datei in vim neu laden [duplizieren]

53

Diese Frage hat hier bereits eine Antwort:

Wenn eine Datei in vim geöffnet ist, in diesem Fall eine Protokolldatei, möchte ich eine Aktualisierung auslösen und alle Dateiänderungen in meine vorhandene vim-Sitzung laden.

Ich verwende oft tail -f für Protokolldateien, aber da ich Java und Tomcat verwende, sind die Protokollnachrichten zu viel für tail ...

Gibt es einen vim-Befehl zum erneuten Laden einer geöffneten Datei?

mcgyver5
quelle
2
zu viel für schwanz? Selbst als VIM-Benutzer sehe ich nicht, wie
VIM
zu viel für tail, da die anzahl der zeilen unvorhersehbar war und ich nicht sicher sein konnte, ob tail -fn 200 ausreichen würde
mcgyver5
Ich habe ein Protokoll erstellt von Modsecurity, das Nicht-ASCII-Zeichen enthält. Sowohl cat als auch tail sperren das Terminal, wenn diese Datei aufgerufen wird. Vim tuckert fröhlich mit.

Antworten:

71

Probieren Sie es aus:

:e

Von :h :e:

Bearbeiten Sie die aktuelle Datei. Dies ist nützlich, um die aktuelle Datei erneut zu bearbeiten, wenn sie außerhalb von Vim geändert wurde.

Dennis Williamson
quelle
Vielen Dank! Ich dachte an einem Punkt: Ich habe nicht für mich gearbeitet, aber es funktioniert jetzt!
mcgyver5
oder gehen Sie auch zum Ende der Datei ... :e | $
Ebyrob
15

Solange :edie richtige Antwort auf die von Ihnen gestellte Frage ist, können Sie weniger verwenden, wenn das Ziel darin besteht, ein Protokoll mit gutem Scrollback zu erstellen. FWährend des Anzeigens einer Datei wird ein FBildlauf nach vorne ausgeführt, wobei kontinuierlich neu geladen wird. Von der Manpage:

   F      Scroll  forward, and keep trying to read when the end of file
          is reached.  Normally this command would be used when already
          at the end of the file.  It is a way to monitor the tail of a
          file which is growing while it is being viewed.  (The  behav-
          ior is similar to the "tail -f" command.)

Dem Benutzer weniger :eauferlegt als schnell in die Quere gekommen zu sein.

to_json
quelle