¿Cómo hacer que tail -f muestre salida en color con vim?

¿Cómo hacer que tail -f muestre salida en color con vim?

En estopregunta, respondió Gilles

Otra posibilidad más es correr tail -fen unEmacsbuffer de shell y usar las capacidades de coloración de sintaxis de Emacs.

Como soy un usuario de vim, me gustaría hacer esto conempuje, noemacs.
Haceempujetiene esta característica?

Respuesta1

Puede escribir un complemento multiproceso para cambiar los búferes en tiempo real en Python o cualquier otro script que Vim admita y tenga subprocesos.

Pero, hasta donde yo sé, esto solo funciona en la terminal. Al menos en X11, la versión de la GUI fallará si otro hilo modifica la GUI.

Si acepta otros programas,grcycczeson capaces de colorear transmisiones.

Respuesta2

Me gusta breve y sin muchos hacks o scripts externos. Puede ejecutar este oneliner desde ex (dentro de vim) cuando sea necesario (o poner cada comando en vimrc, para cuando se abran los archivos de registro).

:set autoread | au CursorHold * checktime | call feedkeys("lh")

y además puedes :set syntax=logtalkcolorear 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 por sí solo, no hay un temporizador interno o algo así. Solo leerá el archivo cuando vim realice una acción, como un comando en ex:!
  • CursorHold * checktime: cuando el usuario no mueve el cursor durante el tiempo especificado updatetime(que es 4000 milisegundos de forma predeterminada), checktimese ejecuta, lo que busca 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 CursorHoldse activa, lo que significa que tenemos unbucle)

Para detener el desplazamiento cuando se usa 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ás trabajando en una sesión ssh sin screen/tmux. Además, puede copiar directamente desde el archivo de registro, si es necesario, o guardar el resultado directamente o... cualquier cosa que pueda hacer con vim :)

*de estorespuesta(refiriéndose a una respuesta dePhanHaiQuangy un comentario deflukus)

información relacionada