como @flukus disse em um comentário sobre uma resposta anterior, você pode call feedkeys["lh"]
(move o cursor para a direita e para a esquerda, o que normalmente não faz mal ao visualizar um arquivo de log)
Então, se você combinar o resto da resposta, você terá um oneliner que pode executar de ex (dentro do vim) quando necessário:
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(se você quiser pular (quase) para o final do arquivo, basta usar "G" em vez de "lh" com feedkeys)
Explicação:
- autoread : lê o arquivo quando alterado de fora (mas não funciona por conta própria, não há temporizador interno ou algo parecido. Ele só lerá o arquivo quando o vim fizer uma ação, como um comando em ex :!
- CursorHold * checktime : quando o cursor não é movido pelo usuário pelo tempo especificado em 'updatetime' (que é 4000 milissegundos por padrão) checktime é executado, que verifica as alterações de fora do arquivo
- chame feedkeys ("lh") : o cursor é movido uma vez, para a direita e para a esquerda. e então nada acontece (... o que significa que o CursorHold é acionado, o que significa que temos um loop )
Além disso, você pode :set syntax=logtalk
colorir o log
Para parar a rolagem ao usar call feedkeys("G")
, execute :set noautoread
- agora o vim dirá que o arquivo foi alterado e perguntará se alguém deseja ler as alterações ou não)
(Isso tem algum efeito colateral?)
Edit: eu vejo um efeito colateral: se alguém usa "G" es a chave de alimentação, ele vai rolar para baixo todos os buffers abertos atualmente ?! Portanto, não é possível trabalhar no buffer esquerdo de uma janela de divisão enquanto o buffer direito rola para baixo um arquivo de log automaticamente