jak @flukus powiedział w komentarzu do poprzedniej odpowiedzi , możesz call feedkeys["lh"]
(przesuwa kursor w prawo iz powrotem w lewo, co normalnie nie szkodzi podczas przeglądania pliku dziennika)
Tak więc, jeśli połączysz resztę odpowiedzi , masz oneliner, który możesz w razie potrzeby uruchomić z ex (whithin vim):
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(jeśli chcesz przeskoczyć (prawie) na koniec pliku, po prostu użyj „G” zamiast „lh” z kluczami kanałów)
Objaśnienie:
- autoread : czyta plik po zmianie z zewnątrz (ale nie działa samodzielnie, nie ma wewnętrznego timera lub czegoś podobnego. Czyta plik tylko wtedy, gdy vim wykona akcję, jak polecenie w ex :!
- CursorHold * checktime : gdy kursor nie jest przesuwany przez użytkownika przez czas określony w 'updatetime' (który domyślnie wynosi 4000 milisekund) wykonywany jest checktime, który sprawdza zmiany spoza pliku
- wywołaj feedkeys ("lh") : kursor jest przesuwany raz, w prawo iz powrotem w lewo. i wtedy nic się nie dzieje (... co oznacza, że wyzwalany jest CursorHold, co oznacza, że mamy pętlę )
Dodatkowo możesz :set syntax=logtalk
pokolorować dziennik
Aby zatrzymać przewijanie podczas używania call feedkeys("G")
, wykonaj :set noautoread
- teraz vim powie, że plik został zmieniony i zapyta, czy chcesz odczytać zmiany, czy nie)
(Czy ma to jakieś skutki uboczne?)
Edycja: Widzę jeden efekt uboczny: jeśli użyje się "G" es klucz kanału, przewinie się w dół każdy aktualnie otwarty bufor ?! Tak więc nie można pracować w lewym buforze podzielonego okna, podczas gdy prawy bufor automatycznie przewija plik dziennika