มีวิธีใดที่จะออกจาก "น้อยลง" โดยไม่ล้างหน้าจอหรือไม่?


68

ค่อนข้างบ่อยฉันพบว่าตัวเองต้องการที่จะเลิกlessแต่ออกจากสิ่งที่ฉันกำลังดูบนหน้าจอเพื่ออ้างอิงกลับไป มีวิธีการทำเช่นนี้? วิธีการแก้ปัญหา?

(วิธีแก้ปัญหาปัจจุบันของฉันคือการออกจากนั้นใช้moreดังนั้นวิธีแก้ปัญหาใด ๆ ที่ดีกว่าที่ได้รับการต้อนรับอุดมคติจะเป็นสิ่งที่ฉันสามารถใช้ได้เมื่อฉันอยู่ข้างในแล้วlessอาจมีการตั้งค่าเปลือกหรือสคริปต์บางส่วน)

เดสก์ท็อปของฉันคือ OSX แต่ฉันใช้เซิร์ฟเวอร์ RHEL และ Ubuntu


1
การอ่านเอาต์พุตที่มีความยาว (ในgit diffหรือgit log) less -Xจะใช้บัฟเฟอร์เลื่อนในเทอร์มินัลของฉันและขับเอาต์พุตก่อนหน้าส่วนใหญ่ ฉันจะรักถ้าlessเพียงแค่ออกจากกับหน้าจอสุดท้ายของการส่งออกในเวลาที่ออก; lessคือไม่เกินหนึ่งหน้าของบัฟเฟอร์เลื่อนจะได้รับหลังจากการเลิกสูบบุหรี่ ความคิดใด ๆ
musiphil

โดยวิธีการที่มักจะเป็นทางเลือกที่ปลอดภัยกว่า-R -r
musiphil

ขอบคุณ สำหรับผู้สงสัย:-R is "Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases."
Steve Bennett

@musiphil บางที -c?
Vanessa Phipps

@MatthewPhipps: ผมคิดว่า-cเป็นเรื่องเกี่ยวกับวิธีการปรับปรุงหน้าจอเมื่อคุณย้ายไปรอบ ๆ lessภายใน
musiphil

คำตอบ:


68

นี่คือฟังก์ชั่นของตัวจำลองเทอร์มินัลที่คุณใช้ (xterm, gnome-terminal, konsole, screen) หน้าจอทางเลือกหรือ altscreen จะถูกเรียกใช้เมื่อโปรแกรมเช่นlessหรือvimถูกเรียกใช้ altscreen นี้ไม่มีบัฟเฟอร์ประวัติและออกทันทีเมื่อคุณออกจากโปรแกรมสลับกลับไปยังหน้าจอเดิมซึ่งคืนค่าประวัติเนื้อหาหน้าต่างก่อนหน้าและตำแหน่ง

คุณสามารถป้องกันไม่ให้มีการlessเปิดตัวในหน้าจอได้โดยผ่านอาร์กิวเมนต์ "-X"

less -X /path/to/some/file

คุณสามารถผ่าน "-X" เป็นตัวแปรสภาพแวดล้อมได้ ดังนั้นหากคุณใช้งานbashให้วางสิ่งนี้ใน~/.bashrc:

export LESS="-X"

อย่างไรก็ตามสิ่งนี้จะยกเลิกการกำหนดค่าเริ่มต้นของ termcap (ความสามารถของเทอร์มินัล) และการยกเลิกการเลียนแบบดังนั้นมุมมองอื่น ๆ เมื่อคุณใช้lessอาจปรากฏขึ้น

อีกตัวเลือกหนึ่งที่จะใช้screenและตั้งค่าตัวเลือกของคุณในaltscreen off จะไม่ล้างหน้าจอและควรรักษารูปแบบสี สมมุติว่าจะมีตัวเลือกเดียวกัน~/.screenrclesstmux

รายการบล็อกนี้อธิบายถึงปัญหาและเสนอวิธีแก้ไขปัญหาเฉพาะบางอย่างที่gnome-terminalประสบความสำเร็จแตกต่างกัน


2
สมบูรณ์ มีข้อเสียหรือไม่?
Steve Bennett

2
เดี๋ยวก่อนฉันได้ค้นพบgit logคำสั่งหนึ่งแล้ว - เอาต์พุตของ(และอาจเป็นคำสั่งที่มีสีอื่น ๆ ) นั้นเกิดความสับสน
Steve Bennett

1
@SteveBennett มีขนาดเล็กพอที่ฉันจะทำให้มันเป็นนามแฝง:alias les="/usr/bin/less -X"
bonsaiviking

4
เฮ้ฉันคิดว่าฉันเพิ่งค้นพบยาแก้พิษสำหรับgit logปัญหาข้างต้น: export LESS="-r -X". (ไม่รู้ว่าผลข้างเคียงของสิ่งนั้นคืออะไร ... )
Steve Bennett

5
ที่จริงแล้วการgitกำหนดLESSตัวแปรFRSXถ้ามันเป็นล้างเมื่อทำงานเพจเจอร์ดังนั้นคุณก็สามารถออกจากการLESSตั้งค่าและจะทำงานโดยอัตโนมัติด้วยless -FRSXมองหาcore.pagerในgit-config(1)สำหรับข้อมูลเพิ่มเติม
musiphil

4

โซลูชันของ George ไม่ได้ผลสำหรับฉัน แต่วิธีนี้แก้ไขได้ (จากรายการบล็อกที่เชื่อมโยงกับคำตอบของเขา)

  1. $ infocmp -I xterm > ~/xterm-noclear.src

  2. แก้ไข ~ / xterm-noclear.src

    • เปลี่ยนชื่อในบรรทัดที่สองจาก 'xterm' เป็น 'xterm-noclear' หรืออะไรก็ตามที่เหมาะกับคุณ (เปลี่ยน 'xterm-debian' หากมี)

    • ลบคำแนะนำ 'smcup' และ 'rmcup' (เช่น "smcup = \ E [? 1049h," และ "rmcup = \ E [? 1049l,")

  3. $ mkdir ~/.terminfo

  4. $ tic ~/xterm-noclear.src (x / xterm-noclear ควรปรากฏในไดเรกทอรี ~ / .terminfo ของคุณ)

  5. $ export TERM=xterm-noclear (ตอนนี้ตรวจสอบพฤติกรรมน้อยลงและถ้าพอใจให้เพิ่มบรรทัดคำสั่งส่งออกไปยัง ~ / .profile ของคุณ)

(ฉันคัดลอกคำแนะนำเหล่านี้โดยตรงจากการแก้ไขคำตอบของจอร์จที่ถูกปฏิเสธของ @ jah)


4

วิธีที่ฉันจำได้คือless -SEXเมื่อฉันต้องการถ่ายโอนข้อมูลผลลัพธ์ไปยังหน้าจอ แต่ไม่ต้องการให้ตัดบรรทัด ตัวอย่างเช่นdocker ps | less -SEXนี่คือ:

  • -S
    • เลื่อนแทนการตัด
    • หากคุณเลื่อนไป-Eคุณสามารถใช้ปุ่มลูกศรเพื่อเลื่อน
  • -E
    • ออกเมื่อคุณไปถึง EOF
  • -X
    • ป้องกันการแลกเปลี่ยนคำ / blanking
    • ส่วน "หน่วยความจำ" คือฉันรู้ว่า S และ E ทำอะไรดังนั้นสิ่งนี้จึงต้องเป็นส่วนอื่น (และเหตุผลของเราในการส่งคำสั่งนี้ไปยังหน่วยความจำก็คือเราต้องการดัมพ์ (ไม่เข้าสู่เซสชันแบบโต้ตอบ) เอาต์พุตที่ไม่ได้เปิด

หากคุณจำless -SEXไม่ได้มีความหวังไม่มากสำหรับคุณ แค่ google อีกครั้งทุกครั้งที่ฉันเดา


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