Nesta pergunta , Gilles respondeu
Outra possibilidade é executar
tail -f
um buffer de shell do Emacs e usar as habilidades de coloração de sintaxe do Emacs.
Por ser um usuário do vim, eu gostaria de fazer isso com o vim , não com o emacs .
O vim tem esse recurso?
Respostas:
Você pode escrever um plug-in multithread para alterar os buffers em tempo real no Python ou em qualquer outro script que o Vim suporte e tenha threads.
Mas isso só funciona no terminal, tanto quanto eu sei. Pelo menos no X11, a versão da GUI falhará se a GUI for modificada por outro encadeamento.
Se você aceitar outros programas, grc e ccze poderão colorir fluxos.
fonte
Eu gosto curto e sem muitos hackers ou scripts externos. Você pode executar este oneliner a partir de ex (dentro do vim) quando necessário (ou colocar cada comando no vimrc, para quando os arquivos de log forem abertos.)
e, além disso, você pode
:set syntax=logtalk
colorir o log(se você quiser pular (quase) para o final do arquivo, use "G" em vez de "lh" com as teclas de feed)
Explicação:
autoread
: lê o arquivo quando alterado do lado de fora (mas não funciona por si só, não há cronômetro interno ou algo assim. Ele só lerá o arquivo quando o vim executar uma ação, como um comando em ex:!
CursorHold * checktime
: quando o cursor não é movido pelo usuário pelo tempo especificado emupdatetime
(que é de 4000 milissegundos por padrão)checktime
é executado, que verifica alterações fora do arquivocall feedkeys("lh")
: o cursor é movido uma vez, direita e volta à esquerda. e então nada acontece (... o que significa queCursorHold
é acionado, o que significa que temos um loop )Para parar a rolagem ao usar
call feedkeys("G")
, execute:set noautoread
- agora o vim dirá que o arquivo foi alterado e pergunta se alguém deseja ler as alterações)Eu gosto da idéia de assistir arquivos de log no vim (em vez de tail -f), por exemplo, quando você está trabalhando em uma sessão ssh sem screen / tmux. Além disso, você pode copiar diretamente do arquivo de log, se necessário, ou salvar a saída diretamente ou ... o que você puder fazer com o vim :)
* desta resposta (referindo-se a uma resposta de PhanHaiQuang e um comentário de flukus )
fonte