Wie @flukus in einem Kommentar zu einer früheren Antwort sagte , können Sie call feedkeys["lh"](es bewegt den Cursor nach rechts und zurück nach links, was normalerweise beim Anzeigen einer Protokolldatei keinen Schaden anrichtet).
Wenn Sie also den Rest der Antwort kombinieren, haben Sie einen Oneliner, den Sie bei Bedarf von ex (innerhalb von vim) ausführen können:
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(Wenn Sie (fast) zum Ende der Datei springen möchten, verwenden Sie einfach "G" anstelle von "lh" mit Feedkeys.)
Erläuterung:
- Autoread : Liest die Datei, wenn sie von außen geändert wird (aber sie funktioniert nicht von alleine, es gibt keinen internen Timer oder ähnliches. Sie liest die Datei nur, wenn vim eine Aktion ausführt, wie ein Befehl in ex :!
- CursorHold * checktime : Wenn der Cursor vom Benutzer für die in 'updatetime' angegebene Zeit (standardmäßig 4000 Millisekunden) nicht bewegt wird, wird checktime ausgeführt, die nach Änderungen von außerhalb der Datei sucht
- Feedkeys aufrufen ("lh") : Der Cursor wird einmal nach rechts und hinten nach links bewegt. Dann passiert nichts (... was bedeutet, dass CursorHold ausgelöst wird, was bedeutet, dass wir eine Schleife haben. )
Zusätzlich können Sie :set syntax=logtalkdas Protokoll einfärben
Um das Scrollen bei der Verwendung zu stoppen call feedkeys("G"), führen Sie aus :set noautoread- jetzt erkennt vim, dass die Datei geändert wurde, und fragt, ob man die Änderungen lesen möchte oder nicht.
(Hat dies irgendwelche Nebenwirkungen?)
Bearbeiten: Ich sehe einen Nebeneffekt: Wenn man den Feedkey "G" verwendet, wird jeder aktuell geöffnete Puffer nach unten gescrollt?! Es ist also nicht möglich, im linken Puffer eines Splittet-Fensters zu arbeiten, während der rechte Puffer automatisch eine Protokolldatei nach unten scrollt