ปิดใช้งานการตัดบรรทัดสำหรับเอาต์พุตในเทอร์มินัล


69

ฉันมักจะอ่านเอาท์พุทในเทอร์มินัลที่ได้รับการห่อเนื่องจากยาวเกินไป เนื่องจากไม่มีวิธีที่ฉันสามารถปรับเปลี่ยนผลงานพิมพ์ฉันจึงต้องอนุญาตให้ Terminal อนุญาตให้เลื่อนแนวนอน

มีการดัดแปลงที่ฉันสามารถทำได้กับเทอร์มินัล OS X เริ่มต้นเพื่อปิดการใช้งานการตัดบรรทัดและอนุญาตให้เลื่อนแนวนอนหรือไม่?

หรือคุณรู้ทางเลือกอื่นที่ฉันสามารถใช้ได้?


คำถามเก่า ๆ แต่ดูเหมือนว่ายังไม่ได้รับการแก้ไข ฉันต้องการคำตอบเดียวกันเนื่องจากสำหรับฉันฉันไม่สามารถแก้ไขผลลัพธ์ของตัวอย่างเช่น GCC: gcc.gnu.org/onlinedocs/gcc/Language-Ind Independ-Options.htmlด้วย-fmessage-length=0ชุดธงฉันยังคงได้หลาย การเตือนสาย / เอาต์พุตข้อผิดพลาด และฉันไม่ (ตอนนี้)
Michael Trouw

คำตอบ:


51

tputได้หลอกลวงสำหรับฉัน:

tput rmam

ปิดใช้งานการตัดบรรทัด

tput smam

เปิดใช้งานการตัดบรรทัด


13
+1 แต่มีวิธีใดในการเพิ่มการเลื่อนในแนวนอนด้วย?
Erik Allik

ปุ่มลูกศรทำงานให้ฉันในแนวนอนไปที่หน้าจอถัดไป
michid

7
ฉันไม่เห็นวิธีใช้ปุ่มลูกศร ... มันไม่ทำงานสำหรับฉัน วิธีการแก้ปัญหานี้ดูเหมือนจะตัดทอนเส้นความกว้างของหน้าต่างปัจจุบัน เมื่อฉันทำให้หน้าต่างใหญ่ขึ้นมีเพียงพื้นที่ว่างทางด้านขวาของบรรทัดที่ฉันรู้ว่ามีอักขระมากขึ้น ยังแก้ปัญหานี้มีประโยชน์สำหรับวัตถุประสงค์ของฉันเนื่องจากฉันกำลังแสดงบันทึกและข้อมูลด้านขวาสุดนั้นไม่สำคัญในขณะนี้
Jason

2
หาดี! เพิ่มตัวเองสองชื่อแทน zsh ที่น่าจดจำ: alias wrapon='tput rmam'&alias wrapoff='tput smam'
Chris J Allen

2
พูดคุยเกี่ยวกับคำสั่งที่สับสน
แอนดี้

7

ท่อส่งออกผ่าน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.

ฉันพยายามอธิบายสิ่งที่อาจเกิดขึ้นที่นี่แม้ว่าสิ่งนี้จะไม่ส่งผลให้เกิดวิธีการเลื่อนในแนวนอนด้วยแถบเลื่อนตามที่คุณต้องการ


6

iTerm 2 ดูเหมือนจะไม่รองรับการตัดบรรทัดด้วยเช่นกัน คุณอาจใช้น้อยลงหรือลดลงแม้ว่า:

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')"

1

ถ้าคุณอยู่ (กับคนอื่น ๆ ขอแนะนำเป็นวิธีแก้ปัญหา แต่ฉันคิดว่าคุณถูกถามเกี่ยวกับการส่งออกโดยตรง) แล้วเปลี่ยนเส้นทางการส่งออกไปยังแฟ้ม somename.log และเปิดมันด้วย Applications> Utilities> เข้าสู่ระบบ-Viewer (หรือจาก commandline เป็น open somename.log)

มันไม่ได้อยู่ใน terminal แต่ฉันพบตัวดูบันทึกที่เหมาะสมที่สุดในการจัดการกับเอาต์พุตจำนวนมาก (การค้นหาการเลื่อนการกรอง)


ฉันคิดว่าคุณหมายถึงConsole.appใช่มั้ย ไม่มีLog Viewer.appอยู่ในยูทิลิตี้ อย่างไรก็ตามคอนโซลยังล้อมรอบความแตกต่างเพียงอย่างเดียวคือบรรทัดแบบยาวจะถูกย่อเป็นค่าเริ่มต้น คุณต้องคลิกเพื่ออ่านทุกอย่างดังนั้นสิ่งนี้จะไม่ช่วย
gentmatt

0

ขึ้นอยู่กับสิ่งที่คุณพยายามจะหยุดห่อคุณสามารถใช้เสียงเรียกเข้า ดังนั้นเรียกใช้ vim บนไฟล์ที่มีบรรทัดยาวแล้วพิมพ์:

:se nowrap

1
สิ่งนี้จะช่วยไม่ได้เนื่องจากฉันไม่ได้อ่านไฟล์ ฉันกำลังอ่านข้อมูลเครือข่ายผ่าน lsof
gentmatt

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.