Nonaktifkan pembungkus garis untuk keluaran di Terminal

69

Saya sering membaca keluaran di terminal yang terbungkus karena terlalu panjang. Karena tidak ada cara saya dapat memodifikasi hasil cetak, saya perlu membiarkan Terminal mengizinkan pengguliran horizontal.

Apakah ada modifikasi yang dapat saya lakukan pada Terminal OS X default untuk menonaktifkan pembungkus garis dan memungkinkan pengguliran horizontal ?

Atau Anda tahu alternatif lain yang bisa saya gunakan?

gentmatt
sumber
Pertanyaan lama, tetapi bagi saya sepertinya masih belum terselesaikan. Saya membutuhkan jawaban yang sama, karena bagi saya saya tidak dapat mengedit output misalnya GCC lebih lanjut: gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html Dengan -fmessage-length=0set flag , saya masih mendapatkan multi- garis peringatan / output kesalahan. dan saya tidak (untuk saat ini).
Michael Trouw

Jawaban:

51

Tput melakukan trik untuk saya:

tput rmam

menonaktifkan pembungkus baris.

tput smam

memungkinkan pembungkus garis.

michid
sumber
13
+1 tetapi apakah ada cara untuk menambahkan pengguliran horizontal juga?
Erik Allik
Tombol panah berfungsi untuk saya untuk secara horizontal menuju layar berikutnya.
michid
7
Saya tidak melihat cara menggunakan tombol panah ... mereka tidak bekerja untuk saya. Solusi ini tampaknya hanya memotong garis dengan lebar jendela saat ini. Ketika saya membuat jendela lebih besar hanya ada ruang kosong di sebelah kanan garis yang saya tahu mengandung lebih banyak karakter. Namun, solusi ini berguna untuk tujuan saya karena saya menampilkan log dan informasi di paling kanan tidak penting saat ini.
Jason
2
penemuan yang bagus! menambahkan sendiri beberapa alias zsh yang berkesan: alias wrapon='tput rmam'&alias wrapoff='tput smam'
Chris J Allen
2
berbicara tentang perintah yang dikaburkan
Andy
7

Pipa output melalui 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.

Saya mencoba menjelaskan apa yang mungkin terjadi di sini , meskipun ini tidak akan menghasilkan cara untuk menggulir secara horizontal dengan scrollbar, seperti yang Anda inginkan.

mtklr
sumber
6

iTerm 2 tampaknya juga tidak mendukung menonaktifkan pembungkus baris. Anda mungkin hanya menggunakan lebih sedikit atau memotong:

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
sumber
1

Jika Anda (seperti yang disarankan orang sebagai solusi, meskipun saya pikir Anda bertanya tentang output langsung) maka arahkan output ke file somename.log dan buka dengan Applications> Utilities> Log-Viewer (atau dari commandline as open somename.log).

Ini bukan di terminal tetapi saya menemukan penampil log ke yang paling cocok untuk menangani sejumlah besar output (mencari, menggulir, memfilter).

Nicholaz
sumber
Saya pikir maksud Anda Console.app, bukan? Tidak ada Log Viewer.appdi Utilities. Namun, konsol juga membungkus, satu-satunya perbedaan adalah bahwa garis panjang dikontrak secara default. Anda harus mengkliknya untuk membaca semuanya - jadi, sayangnya ini tidak akan membantu.
gentmatt
0

Bergantung pada apa yang Anda coba untuk berhenti membungkusnya, Anda bisa menggunakan vim. Jadi luncurkan vim pada file dengan garis panjang, lalu ketik:

:se nowrap
Philip Kearns
sumber
1
Ini tidak akan membantu, karena saya tidak membaca file. Saya membaca informasi jaringan melalui lsof.
gentmatt
0

Menggunakan cut

myscript | cut -c -100
Alexey Petrushin
sumber