Deshabilite el ajuste de línea para la salida en la Terminal

69

A menudo leo las salidas en el terminal que se envuelven porque son demasiado largas. Como no hay forma de que pueda modificar la salida impresa, necesito dejar que la Terminal permita el desplazamiento horizontal.

¿Hay alguna modificación que pueda hacer en la Terminal OS X predeterminada para deshabilitar el ajuste de línea y permitir el desplazamiento horizontal ?

¿O conoces otra alternativa que pueda usar?

Gentmatt
fuente
Antigua pregunta, pero me parece que aún no se ha resuelto. Necesito la misma respuesta, ya que para mí no puedo editar más la salida de, por ejemplo, GCC: gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html Con el indicador -fmessage-length=0configurado, sigo obteniendo advertencia de línea / salida de error. y yo no (por ahora).
Michael Trouw

Respuestas:

51

tput hizo el truco para mí:

tput rmam

deshabilita el ajuste de línea.

tput smam

permite el ajuste de línea.

michid
fuente
13
¿+1 pero alguna forma de agregar desplazamiento horizontal también?
Erik Allik
Las teclas de flecha me funcionan para ir horizontalmente a la siguiente pantalla.
michid
77
No veo cómo usar las teclas de flecha ... no funcionan para mí. Esta solución parece simplemente truncar las líneas al ancho de la ventana actual. Cuando agrando la ventana, solo hay un espacio vacío a la derecha de las líneas que sé que contienen más caracteres. Aún así, esta solución es útil para mis propósitos, ya que estoy mostrando registros y la información en el extremo derecho es intrascendente en este momento.
Jason
2
bonito hallazgo! me añadí un par de alias zsh memorables: alias wrapon='tput rmam'&alias wrapoff='tput smam'
Chris J Allen
2
hablar sobre comandos ofuscados
Andy
7

Canalice la salida a través de less -S:

   -S or --chop-long-lines
          Causes lines longer than the screen width to be chopped (truncated)
          rather than wrapped.  That is, the portion of a long line that does
          not fit in the screen width is not shown.  The default is  to  wrap
          long lines; that is, display the remainder on the next line.

Traté de explicar lo que podría estar pasando aquí , aunque esto no resultará en una forma de desplazarse horizontalmente con una barra de desplazamiento, como parece querer.

mtklr
fuente
6

iTerm 2 tampoco parece admitir la desactivación del ajuste de línea. Sin embargo, puede usar menos o cortar:

less /var/log/system.log
expand /var/log/system.log | cut -c 1-$COLUMNS
less -s <<< "$(osascript -e 'tell app "Terminal" to contents of window 1')"
Lri
fuente
1

Si es así (como otros sugieren como una solución, aunque creo que preguntó sobre la salida directa), redirija la salida a un archivo somename.log y ábralo con Aplicaciones> Utilidades> Visor de registros (o desde la línea de comandos como open somename.log).

No está en la terminal, pero encontré el visor de registros más adecuado para manejar una gran cantidad de resultados (búsqueda, desplazamiento, filtrado).

Nicholaz
fuente
Creo que te refieres al Console.app, ¿verdad? No hay Log Viewer.appen las utilidades. Sin embargo, la consola también se ajusta, la única diferencia es que las líneas largas se contraen de forma predeterminada. Tienes que hacer clic en ellos para leer todo, por lo que, desafortunadamente, esto no ayudará.
gentmatt
0

Dependiendo de lo que intente dejar de envolver, podría usar vim. Inicie vim en el archivo con las líneas largas y luego escriba:

:se nowrap
Philip Kearns
fuente
1
Esto no ayudará, ya que no estoy leyendo archivos. Estoy leyendo información de red a través de lsof.
gentmatt
0

Utilizar cut

myscript | cut -c -100
Alexey Petrushin
fuente