Ответ 1
Откройте файл журнала и
:setlocal autoread
Существует плагин (Tail Bundle) на vim.
Я хочу использовать gvim для просмотра постоянно обновляемого файла журнала, так что я всегда вижу последнюю обновленную строку, такую как команда tail в unix. Возможно ли это?
Откройте файл журнала и
:setlocal autoread
Существует плагин (Tail Bundle) на vim.
Или менее элегантное решение на vim 7.x было бы просто: e! когда вам нужно обновление.
Мне нравится это коротко и без большого количества хакеров или внешних скриптов. Вы можете запустить этот 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 скажет, что файл был изменен и спросили, хотите ли вы прочитать изменения или нет)
* из этого ответа (ссылаясь на ответ PhanHaiQuang и комментарий flukus)