как @flukus сказал в комментарии к предыдущему ответу, вы можете call feedkeys["lh"]
(он перемещает курсор вправо и обратно влево, что обычно не вредит при просмотре файла журнала)
Итак, если вы объедините оставшуюся часть ответа, у вас есть oneliner, который вы можете запустить из ex (whithin vim) при необходимости:
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(если вы хотите перейти (почти) к концу файла, просто используйте «G» вместо «lh» с клавишами подачи)
Объяснение:
- autoread : читает файл при изменении извне (но он не работает сам по себе, нет внутреннего таймера или чего-то подобного. Он будет читать файл только тогда, когда vim выполняет действие, например команду в ex :!
- CursorHold * checktime : когда курсор не перемещается пользователем в течение времени, указанного в 'updatetime' (которое по умолчанию составляет 4000 миллисекунд), выполняется checktime, который проверяет наличие изменений извне файла
- вызовите feedkeys («lh») : курсор перемещается один раз вправо и назад влево. а затем ничего не происходит (... это означает, что CursorHold срабатывает, что означает, что у нас есть цикл )
Дополнительно вы можете :set syntax=logtalk
раскрасить журнал
Чтобы остановить прокрутку при использовании call feedkeys("G")
, выполните :set noautoread
- теперь vim сообщит, что файл был изменен, и спросит, хочет ли кто-то прочитать изменения или нет)
(Есть ли у этого побочные эффекты?)
Изменить: я вижу один побочный эффект: если использовать «G» в качестве клавиши подачи, он будет прокручивать вниз каждый текущий открытый буфер ?! Таким образом, невозможно работать в левом буфере разделенного окна, когда правый буфер автоматически прокручивает файл журнала вниз.