วิธีที่จะทำให้เพจเจอร์น้อยตอบสนองต่อล้อเลื่อนและไม่ล้างหน้าจอ


13

ฉันรู้เกี่ยวกับคำตอบเช่นHow-to-make-mouse-wheel-scroll-the-less-เพจเจอร์โดยใช้ bash-and-gnome-terminalซึ่งเป็นการลบ-Xค่าสถานะออกจากตัวแปรสภาพแวดล้อม $ LESS แต่ฉันต้องการจะทำทั้งสองอย่างนี้:

  1. ใช้ล้อเมาส์เพื่อเลื่อนเพจเจอร์ (เมื่อเทียบกับการเลื่อนแถบเลื่อนหน้าต่าง terminal ของ) (ซึ่งคุณได้รับโดยการลบ -Xจาก$LESS)
  2. มีเนื้อหาจากเพจเจอร์ยังคงอยู่บนหน้าจอหลังจากเลิก (ซึ่งสามารถทำได้ตามปกติโดยการเพิ่ม -Xการ$LESS)

มีวิธีใดบ้างที่ฉันจะมีเค้กและกินได้เช่นกัน?

คำตอบ:


20

ไม่ได้โดยไม่ต้องแฮ็ครหัสที่มาน้อย เรื่องราวเบื้องหลังเล็กน้อย:

น้อยไม่สามารถจัดการกับเมาส์ (รวมถึงเหตุการณ์การเลื่อน) เลย

เทอร์มินัลอีมูเลเตอร์รองรับหน้าจอทางเลือกที่เรียกว่า นี่คือแอพเต็มหน้าจอส่วนใหญ่ที่เปลี่ยนเป็นระยะเวลา (และสลับกลับไปที่หน้าจอปกติเมื่อพวกเขาออกจากทำให้เนื้อหาก่อนหน้านี้ "กู้คืน") และไม่มีบัฟเฟอร์การเลื่อน น้อยก็สลับไปที่หน้าจอทางเลือกนี้นอกจาก-Xจะได้รับในกรณีที่มันไม่ได้

เทอร์มินัลอีมูเลเตอร์จำนวนมากคิดว่าเมื่ออยู่ในโหมดหน้าจออื่นและแอปพลิเคชันที่ทำงานอยู่ด้านในไม่สนใจเหตุการณ์เมาส์มันเหมาะสมที่จะแปลงการเลื่อนเป็นเหตุการณ์แป้นกดขึ้นหรือลง มันเป็นแฮ็คและมันอาจเป็นอันตรายได้ทั้งบนหน้าจอปกติ (ลองนึกภาพว่าจะเกิดอะไรขึ้นเช่นที่ shell prompt ของคุณ) หรือเมื่อแอปพลิเคชันต้องการจับเมาส์ (แน่นอนว่าพวกเขาต้องเห็นเหตุการณ์เมาส์จริงแล้ว) แต่เนื่องจากค่าเริ่มต้นทั้งสองนี้ไม่ได้ทำงานเมื่อคุณทำงานlessแฮ็คนี้จะเริ่มทำงาน(ขึ้นอยู่กับเทอร์มินัลอีมูเลเตอร์ที่รองรับและเปิดใช้งานผ่าน\e[?1007hกับ\e[?1007l) เหตุการณ์การเลื่อนของคุณจะถูกแปลงโดยเทอร์มินัลอีมูเลเตอร์เป็นปุ่มกดขึ้นและลงและน้อยกว่าจะไม่สามารถแยกความแตกต่างจากการกดปุ่มจริง ไม่ได้รับเหตุการณ์การเลื่อนเม้าส์: มันจะเห็นปุ่มกดขึ้นและลง

ดังนั้นคุณอยู่ที่: ไม่ว่าคุณจะเปลี่ยนเป็นหน้าจออื่นและแฮ็คของเทอร์มินัลจะแปลงกิจกรรมการเลื่อนเป็นปุ่มกดน้อยลงและหน้าจอปกติจะถูกกู้คืนเมื่อคุณออกจากเครื่อง มิฉะนั้นคุณจะไม่สามารถแปลงเหตุการณ์สโครลให้เป็นปุ่มกดและไม่สามารถเข้าใจเหตุการณ์เลื่อนได้

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

ในทางปฏิบัติโดยทั่วไปแล้วจะเดือดลงไปที่: ขอโทษลืมมัน


0

เห็นได้ชัดว่าอัปเกรดเป็น 530 หรือใหม่กว่านั้นจะทำให้คุณได้รับคุณสมบัติที่ต้องการ

http://www.greenwoodsoftware.com/less/news.530.html

นี่คือความแตกต่างระหว่างรุ่น 487 และรุ่น 530:

อย่าส่งลำดับ init เทอร์มินัลเอาต์พุตหากใช้ -F และไฟล์พอดีกับหน้าจอเดียว

ไม่พบ PPA 'น้อย' ใด ๆ ที่มีรุ่นที่ใหม่กว่าดังนั้นเพียงดาวน์โหลดซอร์สแพ็คและสร้างภายในเครื่องและติดตั้ง

และกำหนดค่าคอมไพล์เช่นนี้

git config --global core.pager 'less -F -S -R -i -+X'

ข้อมูลเพิ่มเติม: วิธีใช้“ น้อยกว่า -F” โดยไม่มี“ -X” แต่ยังคงแสดงผลออกมาถ้าหน้าเดียว?


0

ไม่สามารถใช้ล้อเลื่อนของเมาส์เพื่อเลื่อนในเพจเจอร์ที่น้อยลง แต่มันเป็นไปได้ที่จะใช้ล้อเลื่อนของเมาส์เพื่อเลื่อนเนื้อหาด้วยเพจเจอร์ w3m! w3m เป็น " เพจเจอร์ที่เรียกค้นได้ WWW พร้อมการสนับสนุนตาราง / เฟรมที่ยอดเยี่ยม " ดังนั้นจึงเป็นไปได้ที่จะใช้เป็นคอนโซลเว็บเบราว์เซอร์ นอกจากนี้ยังเป็นไปได้ที่จะใช้ w3m เป็นโปรแกรมดูรูปภาพคอนโซล (ไม่ทำงานกับเทอร์มินัลอีมูเลเตอร์ทั้งหมด แต่ทำงานได้ดีกับ xterm) w3m " รองรับตาราง, เฟรม, การเชื่อมต่อ SSL, สีและภาพอินไลน์ " แอปพลิเคชั่นที่มีประโยชน์มาก! ภาพหน้าจอ

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