Desplazamiento horizontal en incrementos más pequeños con menos -S

25

Estoy usando lesspara analizar los registros de acceso HTTP. Quiero ver todo ordenadamente en líneas simples, así que estoy usando -S.

El problema que tengo es que el primer tercio de mi ventana de terminal está ocupado con metadatos que no me importan. Cuando uso las teclas de flecha para desplazarme hacia la derecha, ¡encuentro que se desplaza más allá del comienzo de la información que me interesa!

Simplemente podría eliminar el inicio de cada línea, pero no sé si podría necesitar esos datos en el futuro, y preferiría no tener que mantener archivos separados o ejecutar un script cada vez que quiera ver algunos registros.

Ejemplo

Esta línea:

access.log00002: 10.0.0.0 - USER_X [07 / Nov / 2013: 16: 50: 50 +0000] "GET / some / long / URL"

Desplazarse a: ng/URL"

Pregunta

¿Hay alguna manera de desplazarme en incrementos más pequeños, ya sea por caracteres o por palabras?

Micro
fuente

Respuestas:

19

Los únicos comandos de desplazamiento horizontal se desplazan a la mitad de la pantalla, pero puede pasar un argumento numérico para especificar el número de caracteres, por ejemplo, escribir los 4 Rightpergaminos a la derecha en 4 caracteres. Less realmente no tiene una noción de "línea actual" y no divide una línea en palabras, por lo que no hay forma de desplazarse por una palabra a la vez.

Puede definir un comando que se desplace por un número fijo de caracteres. Por ejemplo, si desea que Shift+ Lefty Shift+ se Rightdesplace 4 caracteres a la vez:

  1. Determine las secuencias de control que su terminal envía para estas combinaciones de teclas. Terminales envían una secuencia de bytes que comienzan con el escape (que se puede escribir \e, \033, ^[en diversos contextos) de caracteres para teclas de función y keychords. Presione Ctrl+ V Shift+ Leften el indicador de shell: esto inserta el carácter de escape literalmente (lo verá ^[en la pantalla) en lugar de que su shell lo procese e inserta el resto de la secuencia de escape. Una configuración común tiene Shift+ Lefty Shift+ Rightenviar \eO2Dy \eO2Crespectivamente.

  2. Cree un archivo llamado ~/.lesskeyy agregue las siguientes líneas (ajuste si su terminal envía diferentes secuencias de escape):

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    Luego lesskey, ejecute , lo que convierte lo legible por humanos ~/.lesskeyen un archivo binario ~/.lessque se lesslee cuando se inicia.

Gilles 'SO- deja de ser malvado'
fuente
19

Puede usar la opción "- #" para establecer el número de columnas para el desplazamiento horizontal.

Desde la página del manual:

- # o --shift
Especifica el número predeterminado de posiciones para desplazarse horizontalmente en los comandos FLECHA DERECHA y FLECHA IZQUIERDA. Si el número especificado es cero, establece el número predeterminado de posiciones a la mitad del ancho de la pantalla.

Ejemplo (establezca el desplazamiento horizontal en 10 columnas):

menos -S - # 10 mi_archivo

Rikard
fuente
¿Existe la posibilidad de agregar esta opción a algún archivo de configuración para que no tenga que pasar - opción # 1 cada vez que escribo el comando?
Trismegistos
1
@Trismegistos Sí, se puede establecer la variable de entorno en su ~/.bashrcconexport LESS="-# 1"
wisbucky
También puede establecer un porcentaje del ancho de la pantalla si el número comienza con un punto decimal. Por ejemplo, -# .25se desplazaría por 1/4 del ancho de la pantalla.
wisbucky
2

Una alternativa es usar el mostbuscapersonas.

En most, no-wrap ( -S) es el valor predeterminado y se Rightdesplaza una columna hacia la derecha en lugar de media pantalla. Use >o Tabpara desplazarse más rápido.

Otra alternativa es el w3mlocalizador (también uno de los mejores navegadores web terminales) donde se puede utilizar <, >también, y ,, .para el desplazamiento de grano fino (las mismas teclas en los teclados QWERTY).

Stéphane Chazelas
fuente
Esto no es verdad. Más es el ajuste predeterminado y no hay una opción -S.
Trismegistos
1
@Trismegistos, no estoy hablando more(para lo cual hay docenas de implementaciones), sino sobre most(por John E. Davis, no conozco ninguna otra implementación).
Stéphane Chazelas