Мені подобається це коротке і без великої кількості злому або зовнішніх сценаріїв. Ви можете запустити цей 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 )