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