Me encanta less
, que puedo usar para seguir registros con la +F
bandera (o la ShiftFtecla de acceso rápido), buscar hacia adelante y hacia atrás, y generalmente moverme libremente por el documento.
Pero falta una cosa less
: por lo general, estoy al final del archivo y quiero ver que sucedan cosas nuevas. En tail -f
Solo golpearía entervarias veces, y las nuevas líneas de registro aparecerían claramente separadas de las viejas.
¿Es posible agregar esto a less
? ¿Cómo?
Respuestas:
Este no es realmente
tail
el comportamiento, es la terminal. Tail solo está enviando un flujo de salida a stdout, que va a su terminal, e inserta líneas en blanco en el medio de esa salida presionando enter. La cola en sí misma no está aceptando ninguna aportación tuya. Puedes escribir lo que quieras y eso también aparecerá.less
, sin embargo, es una aplicación de consola, y toma datos y los procesa. Está administrando la consola usando secuencias de control de terminal, que es cómo puede desplazarse. Permitirle insertar caracteres arbitrarios en la secuencia desordenaría la pantalla, y de todos modos utiliza menos su entrada para controlar el programa.Desafortunadamente, no parece tener una manera de marcar visualmente la posición actual. Eso no es una solicitud de función terribles, sin embargo, y menos no todavía conseguir nuevas características de vez en cuando.
fuente
Encontré tu pregunta mientras buscaba la misma respuesta para mí.
Decepcionado por la respuesta aceptada, se me ocurrió una solución. Es menos que ideal, pero me permite marcar mi posición en el registro con el que estoy siguiendo
less
, que es el punto principal.Creé un pequeño script ejecutable (lo llamé
marklog
) con los siguientes contenidos, y lo puse en mi camino:Por supuesto, esto solo funciona si tiene acceso de escritura al archivo de registro, lo que podría ser un factor decisivo en muchas situaciones. También he creado esta versión que utilizo para escribir en archivos de registro que no tengo (pero a los que tengo acceso sudo):
Estas secuencias de comandos proporcionan el tipo de descanso visual que estaba buscando. Hay al menos 3 formas de usarlos:
En el punto en el que normalmente presionaría enter varias veces al usar
tail -f
, en lugar de eso, ejecutemarklog
desde otro terminal (proporcionando la ruta al archivo de registro como argumento).Use CtrlZpara suspender
less
para que pueda ejecutar el script en la misma ventana de terminal, pero cuando vuelve a poner en primer planoless
(usandofg
, por supuesto), ya no estará en modo 'seguir', por lo que deberá presionar ShiftFnuevamente ...Por último, y esta podría ser la forma más conveniente, ya que no necesita escribir la ruta al archivo de registro: ejecute
marklog
directamente desdeless
escribiendo!marklog %
.Less
sustituirá el nombre de archivo actual por%
. Sin embargo,less
no responderá a la! mientras está en modo 'seguir', por lo que deberá presionar CtrlCprimero para salir del modo seguir, ejecutar!marklog %
y luego ShiftFnuevamente.Con el método 3, también obtienes la ventaja adicional del historial de comandos de Less: simplemente presiona
!
y luego usa la flecha hacia arriba para seleccionar el comando más reciente (para mí, siempre esmarklog
).Espero que esto ayude a alguien tanto como ya me ha ayudado.
fuente
Presione Shift+ Fal final del archivo y menos comenzará a funcionar como
tail -f
.fuente
tail -f
. Específicamente no aceptará ingresar como nuevas líneas, que es el único punto de mi pregunta. Además, ya mencionéShift+F
en la pregunta (con un pequeño error, debo decir)No creo que puedas hacer esto. He usado
m
y'
para marcar lugares de interés y luego volver a ir a ellos, pero esto no te da la separación que pides. Quizás algo como multitail hará lo que quieras.fuente
La respuesta de Lambart me lleva a mi solución favorita. Gracias a Lambart!
Simplemente ingrese el modo de seguimiento ctrlcy entre
!printf "\n\n---$(date)---\n\n" >> %
. Después de eso, debe presionar enteruna vez más y presionar shiftfpara comenzar nuevamente después del archivo.fuente