Me gusta breve y sin muchos hackers o scripts externos. Puede ejecutar este oneliner desde ex (dentro de vim) cuando sea necesario (o poner cada comando en vimrc, para cuando se abren los archivos de registro).
:set autoread | au CursorHold * checktime | call feedkeys("lh")
y adicionalmente puedes :set syntax=logtalk
colorear el registro
(si desea saltar (casi) al final del archivo, simplemente use "G" en lugar de "lh" con las teclas de alimentación)
Explicación:
autoread
: lee el archivo cuando se cambia desde el exterior (pero no funciona solo, no hay temporizador interno o algo así. Solo leerá el archivo cuando vim realice una acción, como un comando en ex :!
CursorHold * checktime
: cuando el cursor no es movido por el usuario durante el tiempo especificado updatetime
(que es 4000 milisegundos por defecto) checktime
se ejecuta, que verifica los cambios desde fuera del archivo
call feedkeys("lh")
: el cursor se mueve una vez, hacia la derecha y hacia la izquierda. y luego no pasa nada (... lo que significa que CursorHold
se dispara, lo que significa que tenemos un bucle )
Para detener el desplazamiento al usar call feedkeys("G")
, ejecute :set noautoread
: ahora vim le dirá que el archivo fue cambiado y le preguntará si desea leer los cambios o no)
Me gusta la idea de ver archivos de registro en vim (en lugar de tail -f), por ejemplo, cuando está trabajando en una sesión ssh sin pantalla / tmux. Además, puede copiar directamente desde el archivo de registro, si es necesario, o guardar la salida directamente o ... lo que sea que pueda hacer con vim :)
* de esta respuesta (refiriéndose a una respuesta de PhanHaiQuang y un comentario de flukus )