Мені подобається це коротке і без великої кількості злому або зовнішніх сценаріїв. Ви можете запустити цей oneliner з ex (whithin vim) за потреби (або покласти кожну команду в vimrc, коли відкриваються файли журналу.)
:set autoread | au CursorHold * checktime | call feedkeys("lh")
і додатково ви можете :set syntax=logtalkпофарбувати колоду
(якщо ви хочете перейти (майже) до кінця файлу, просто використовуйте "G" замість "lh" із стрілками)
Пояснення:
autoread: читає файл, коли його змінюють ззовні (але він не працює самостійно, немає внутрішнього таймера чи щось подібне. Він буде читати файл лише тоді, коли vim виконує дію, як команда в ex :!
CursorHold * checktime: коли курсор не переміщено користувачем протягом часу, визначеного в updatetime(який за замовчуванням становить 4000 мілісекунд) checktime, який перевіряє наявність змін поза файлом
call feedkeys("lh"): курсор переміщується один раз, праворуч і назад ліворуч. і тоді нічого не відбувається (... це означає, що CursorHoldспрацьовує, це означає, що у нас є цикл )
Щоб зупинити прокрутку при використанні call feedkeys("G"), виконайте команду :set noautoread- тепер vim скаже, що файл було змінено і запитайте, чи бажаєте ви прочитати зміни чи ні)
Мені подобається ідея дивитися логіни у vim (замість хвоста -f), наприклад, коли ви працюєте в ssh сесії без екрана / tmux. Крім того, ви можете скопіювати безпосередньо з лог-файлу, якщо потрібно, або зберегти вихід безпосередньо або ... все, що ви можете зробити з vim :)
* з цієї відповіді (посилаючись на відповідь PhanHaiQuang та коментар flukus )