2009-04-24 7 views
12

Me gustaría usar VIM como visualizador de archivos de registro. ¿Es posible volver a cargar el archivo actual en un intervalo de tiempo regular (~ 1s)?Uso de VIM como visor de archivos de registro

+0

¿Qué ventaja le otorga vim, por ejemplo, "menos -F"? –

+3

Bonito resaltado de sintaxis. (Por ejemplo, puedo colorear mensajes de nivel de ERROR en rojo). Tengo que usarlo en Windows. –

+1

Y se resaltó la búsqueda incrementada. –

Respuesta

9

uso :set autoread

+1

Esto solo funciona en GVim, sin embargo. – rndstr

+0

No, también funciona en Vim. –

+1

Esto solo actualizará el archivo cuando (g) vim tenga foco. Tampoco se desplazará hacia abajo automáticamente. Entonces, no es realmente tan útil. – rkrzr

5

Ver este VIM tip. Ofrece seguimiento (como tail -f) junto con la numeración de línea de registro

+0

Según la descripción, parece que este complemento tiene problemas en Windows y, en cualquier caso, solo se actualiza cuando el cursor se mueve en Vim. ¿Es esto correcto? –

0

Me gusta breve y sin una gran cantidad de piratería o scripts externos. Puede ejecutar este oneliner de ex (whithin vim) cuando sea necesario (o poner cada comando en vimrc, ya que cuando se abren archivos de registro.)

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

(si es que se quiere saltar (casi) a al final del archivo, sólo tiene que utilizar "G" en lugar de "LH" con feedkeys)

Explicación:

  • autoread: lee el archivo cuando se cambia desde el exterior (pero no funciona por sí solo , no hay temporizador interno o som algo así. Sólo se va a leer el archivo cuando vim hace una acción, como una orden en la ex :!
  • CursorHold * checktime: cuando el cursor no se mueve por el usuario durante el tiempo especificado en updatetime (que es de 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 activa, lo que significa que tenemos un bucle )

Para detener el desplazamiento cuando se utiliza call feedkeys("G"), ejecutar :set noautoread - ahora Vim decir, que el archivo fue un cambio ans preguntar si uno quiere leer los cambios o no)

Me gusta la idea de ver los archivos de registro en vim (en lugar de cola -f), por ejemplo cuando trabajas en una sesión ssh sin screen/tmux. Además, puede copiar directamente desde el archivo de registro, si es necesario, o guardar la salida directa o ... lo que puede hacer con vim :)

* de esta answer (refiriéndose a una respuesta por PhanHaiQuang y un comentario de flukus)

Cuestiones relacionadas