Désactiver le retour à la ligne pour la sortie dans le terminal

69

Je lis souvent des sorties dans le terminal qui sont emballées car elles sont trop longues. Puisqu'il est impossible de modifier la sortie imprimée, je dois laisser le terminal autoriser le défilement horizontal.

Existe-t-il une modification que je peux apporter au terminal OS X par défaut pour désactiver le retour à la ligne et permettre le défilement horizontal ?

Ou connaissez-vous une autre alternative que je peux utiliser?

Gentmatt
la source
Ancienne question, mais il me semble qu’elle n’est toujours pas résolue. Je suis dans le besoin de la même réponse, car pour moi je ne peux pas encore modifier la sortie par exemple GCC: gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html Avec le drapeau -fmessage-length=0ensemble, je comprends toujours multi ligne d'avertissement / sortie d'erreur. et je ne (pour l'instant).
Michael Trouw

Réponses:

51

tput a fait le tour pour moi:

tput rmam

désactive le retour à la ligne.

tput smam

active le retour à la ligne.

michid
la source
13
+1 mais un moyen d'ajouter du défilement horizontal aussi?
Erik Allik
Les touches fléchées me permettent de passer horizontalement à l'écran suivant.
Michelle
7
Je ne vois pas comment utiliser les touches fléchées ... elles ne fonctionnent pas pour moi. Cette solution semble simplement tronquer les lignes à la largeur de la fenêtre en cours. Lorsque je grossis la fenêtre, il y a juste un espace vide à droite des lignes qui, à ma connaissance, contiennent plus de caractères. Néanmoins, cette solution est utile à mes fins car j'affiche des journaux et que les informations à l'extrême droite sont sans importance pour le moment.
Jason le
2
belle trouvaille! Je me suis ajouté quelques alias zsh mémorables: alias wrapon='tput rmam'&alias wrapoff='tput smam'
Chris J Allen
2
parler de commandes obfusquées
Andy
7

Dirigez la sortie vers 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.

J'ai essayé d'expliquer ce qui pourrait se passer ici , bien que cela n'entraîne pas un défilement horizontal avec une barre de défilement, comme vous semblez vouloir.

mtklr
la source
6

iTerm 2 ne semble pas non plus prendre en charge la désactivation du retour à la ligne. Vous pourriez simplement utiliser moins ou couper si:

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
la source
1

Si vous êtes (comme le suggèrent d'autres solutions, même si je pense que vous avez posé des questions sur la sortie directe), redirigez la sortie vers un fichier somename.log et ouvrez-le avec Applications> Utilitaires> Log-Viewer (ou à partir de la ligne de commande en tant que open somename.log).

Ce n’est pas dans le terminal, mais j’ai trouvé la visionneuse de journaux la mieux adaptée pour traiter une grande quantité de sorties (recherche, défilement, filtrage).

Nicholaz
la source
Je pense que tu veux dire le Console.app, non? Il n'y a pas Log Viewer.appdans les utilitaires. Cependant, la console encapsule également, la seule différence est que les lignes longues sont contractées par défaut. Vous devez cliquer dessus pour tout lire - alors, cela ne vous aidera malheureusement pas.
Gentmatt
0

En fonction de ce que vous essayez d'arrêter, vous pouvez utiliser vim. Donc lancez vim sur le fichier avec les lignes longues, puis tapez:

:se nowrap
Philip Kearns
la source
1
Cela ne va pas aider, car je ne lis pas les fichiers. Je lis des informations sur le réseau via lsof.
Gentmatt
0

Utilisation cut

myscript | cut -c -100
Alexey Petrushin
la source