ใช้เทอร์มินัล scrollbar กับ tmux


41

ฉันรู้วิธีการเลื่อนใน tmux ใช้แป้นพิมพ์ แต่ผมสังเกตเห็นว่ามันดูเหมือนว่ามีวิธีการใช้ที่เลื่อนขั้วกับ GNU หน้าจอ สิ่งนี้สามารถทำได้ด้วย tmux?


6
คุณไม่สามารถใช้แถบเลื่อนเทอร์มินัลกับหน้าจอ GNU ได้ แถบเลื่อนจะไม่เข้าถึงบัฟเฟอร์การเลื่อนกลับของหน้าจอ แต่ของเทอร์มินัลซึ่งหมายความว่าเส้นที่เลื่อนออกจากเซสชันหน้าจอที่แตกต่างกันปะปนกัน
ak2

@ ak2 ความโศกเศร้า ... แต่ขอบคุณสำหรับข้อมูล!
Jeff

2
iTerm2มีแผนการในอนาคตที่จะ [รวมกับ tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ) การรวมดังกล่าวมีแนวโน้มที่จะรวมโดยใช้แถบเลื่อนดั้งเดิมเพื่อดูบัฟเฟอร์ประวัติ tmux
Chris Johnsen

คำตอบ:


42

สิ่งนี้เป็นไปได้ทั้งในหน้าจอ GNU และใน tmux และวิธีแก้ปัญหาคล้ายกัน: เพื่อหลอกมัลติเพล็กเซอร์ให้คิดว่าเทอร์มินัลไม่มีโหมด "หน้าจอทางเลือก" (เช่นที่ใช้โดย pico, mutt, ฯลฯ ) สามารถทำได้โดยการตั้งคำสั่ง termcap สำหรับเซสชัน

สำหรับหน้าจอ GNU ให้ใส่สิ่งนี้ใน.screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

และสำหรับ tmux ให้เพิ่มส่วนนี้ของคุณ.tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

ส่วน ' xterm*' ของคำสั่งควรถูกตั้งค่าเป็นสิ่งที่เทอร์มินัลอีมูเลเตอร์ของคุณถูกประกาศเป็น รูปแบบ xterm บางอย่างเป็นการคาดเดาที่ดี แต่คุณสามารถตรวจสอบของคุณในระบบ sane * nix ส่วนใหญ่ด้วย:

echo $TERM

และโดยปกติสามารถตั้งค่าได้ในการตั้งค่าของโปรแกรมเทอร์มินัลของคุณ (เช่น: สำหรับ Apple Terminal.appมันอยู่ในการตั้งค่า -> โปรไฟล์ -> ขั้นสูง (หรือการตั้งค่า -> ขั้นสูง -> การจำลองก่อนโยเซมิตี) "

ผลลัพธ์สุดท้ายคือโอเวอร์โฟลว์สิ้นสุดลงในบัฟเฟอร์การเลื่อนกลับของเทอร์มินัลแทนที่จะหายไป แน่นอนเนื่องจากเป็นบัฟเฟอร์แบบคงที่สิ่งต่าง ๆ จะยุ่งเหยิงในขณะที่คุณสลับไปมาระหว่างหน้าจอหรือหน้าต่าง tmux แต่มันมีประโยชน์สำหรับการสะบัดอย่างรวดเร็วเพื่อดูผลลัพธ์ของlsคำสั่งหรือสิ่งนั้น


2
นอกจากนี้เพิ่งเห็นsuperuser.com/questions/253414/…ซึ่งทำงานตามที่อธิบายไว้เป็นทางเลือกอื่น
Doug J

2
ทางออก: gist.github.com/1297707
นิค

1
@Nick - โปรดทราบว่าคุณกำลังแก้ปัญหาที่แตกต่าง: เพิ่มการสนับสนุนเมาส์ไปยัง tmux อาจเป็นวิธีที่ดีกว่าสำหรับคุณ แต่มันแตกต่างจากการใช้บัฟเฟอร์การเลื่อนแบบดั้งเดิม ตราบใดที่เทอร์มินัลอีมูเลเตอร์ของคุณได้รับการกำหนดไว้อย่างถูกต้องข้างต้นจะทำงานบน y * nix รวมถึง OSX
Doug J

1
ดูเหมือนว่าเป็น tcsh ในตัว ในทุบตีคุณสามารถใช้echo $TERM
Doug J

1
"โอเวอร์โฟลว์" นี้ใช้งานได้ แต่แสดงอักขระ Unicode แปลก ๆ เมื่อออกจาก tmux: stackoverflow.com/q/31790939/2668831
Louis Maddox

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