Существует аналогичный вопрос здесь . В решениях объясняется использование мультитейла и как его настроить, может быть, это может быть полезно.
выход
Ответы:
2
Вы можете написать многопоточный плагин для изменения буфера (ов) в реальном времени на Python или любом другом скрипте, который Vim поддерживает и имеет потоки.
Но это работает только в терминале, насколько я знаю. По крайней мере, в X11 версия GUI будет аварийно завершена, если GUI будет изменен другим потоком.
Если вы принимаете другие программы, GRC и ccze способны раскрасить потоки.
Мне нравится это коротко и без большого количества взлома или внешних сценариев. Вы можете запускать этот oneliner из ex (с vim) при необходимости (или помещать каждую команду в vimrc, когда открываются log-файлы).
: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 (вместо tail -f), например, когда вы работаете в сеансе ssh без screen / tmux. Кроме того, вы можете при необходимости скопировать напрямую из файла журнала, или сохранить результаты напрямую или ... все, что вы можете сделать с помощью vim :)
Ответы:
Вы можете написать многопоточный плагин для изменения буфера (ов) в реальном времени на Python или любом другом скрипте, который Vim поддерживает и имеет потоки.
Но это работает только в терминале, насколько я знаю. По крайней мере, в X11 версия GUI будет аварийно завершена, если GUI будет изменен другим потоком.
Если вы принимаете другие программы, GRC и ccze способны раскрасить потоки.
источник
Мне нравится это коротко и без большого количества взлома или внешних сценариев. Вы можете запускать этот oneliner из ex (с vim) при необходимости (или помещать каждую команду в vimrc, когда открываются log-файлы).
и дополнительно вы можете
:set syntax=logtalk
покрасить журнал(если вы хотите перейти (почти) к концу файла, просто используйте «G» вместо «lh» с кнопками)
Объяснение:
autoread
: читает файл при изменении извне (но он не работает сам по себе, нет внутреннего таймера или чего-то в этом роде. Он будет читать файл только тогда, когда vim выполняет действие, как команда в ex:!
CursorHold * checktime
: когда курсор не перемещается пользователем в течение времени, указанного вupdatetime
(который по умолчанию составляет 4000 миллисекунд)checktime
, выполняется проверка изменений вне файлаcall feedkeys("lh")
: курсор перемещается один раз, вправо и назад влево. и тогда ничего не происходит (... что означает, чтоCursorHold
срабатывает, что означает, что у нас есть цикл )Чтобы остановить прокрутку при использовании
call feedkeys("G")
, выполните команду:set noautoread
- теперь vim скажет, что файл был изменен, и спросит, хотите ли вы прочитать изменения или нет)Мне нравится идея просматривать файлы журналов в vim (вместо tail -f), например, когда вы работаете в сеансе ssh без screen / tmux. Кроме того, вы можете при необходимости скопировать напрямую из файла журнала, или сохранить результаты напрямую или ... все, что вы можете сделать с помощью vim :)
* из этого ответа (ссылка на ответ от PhanHaiQuang и комментарий от flukus )
источник