บังคับให้หน้าจอ GNU reflow เป็นความกว้างของเทอร์มินัลปัจจุบันบน reattach?


32

ฉันต้องการบังคับให้หน้าจอ GNU reflow เป็นความกว้างของเทอร์มินัลที่มีอยู่เมื่อฉัน reattach เซสชัน ดูเหมือนว่าฉันจะทำงานอย่างถูกต้องก่อนที่ฉันจะอัพเกรดเครื่องเป็น CentOS 6 แต่ฉันไม่สามารถหาวิธีกู้คืนได้ ( TERM=xterm)

เมื่อใดก็ตามที่ฉันแนบเซสชันโดยไม่คำนึงถึงสถานะเมื่อฉันถอดออกมันจะเปิดตัวที่ 80 คอลัมน์ปรับขนาดเทอร์มินัลของฉัน (PuTTY ในกรณีนี้) พร้อมกับมัน

ฉันกำลังเปิดตัวและติดตั้งใหม่กับ:

screen -aA -R <session>

. screenrc ของฉันมีเฉพาะสิ่งต่อไปนี้และการผูกคีย์ที่ไม่เกี่ยวข้อง:

term xterm

defscrollback 10000

# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"

vbell off

# Fix fullscreen programs
altscreen on

คุณอาจมีโชคดีกว่าด้วยtmuxฉันสามารถปรับขนาดหน้าต่างเทอร์มินัลของฉันแบบไดนามิกและ tmux ภายในจะติดตาม
หมายเลข 5

คำตอบ:


38

หลังจากที่คุณใส่ctrl-a Fคำสั่ง "fit" อีกครั้งเพื่อปรับขนาดหน้าต่างปัจจุบัน หากคุณใส่กลับเข้าไปโดยใช้-Aตัวเลือกมันควรปรับขนาดหน้าต่างทั้งหมดเมื่อคุณใส่กลับเข้าไปใหม่ มีคนอื่นยังคงแนบไปกับเซสชั่นหน้าจอเมื่อคุณแนบ? ตัวอย่างเช่นคุณต้องใช้ -x เพื่อใส่กลับเข้าไปแทนที่ -r หรือไม่? คุณสามารถแยกผู้อื่นได้เมื่อคุณติดตั้งใหม่ด้วย "หน้าจอ -D -r" แทนที่จะเป็น "หน้าจอ -x" และฉันคาดหวังว่าสิ่งนี้จะใส่หน้าต่างใหม่โดยอัตโนมัติ


ฉันกำลังเปิดตัวด้วย-a -Aและไม่มีใครติดอยู่
Michael

1
ยังคงมีปัญหากับหน้าจอผ่าน Ubuntu 14.04 พอดีไม่ทำงาน การตัดการเชื่อมต่อและการเชื่อมต่อใหม่ทำ หน้าจอ 4.2.1 มีให้บริการจากbackport ที่เชื่อถือได้ ดูเอกสารประกอบของผู้ใช้ backportสำหรับข้อมูลเกี่ยวกับการเปิดใช้งานและการใช้แพคเกจจากพื้นที่เก็บข้อมูล backports
Greg Bell

1
แม้หลังจากทำสิ่งนี้ฉันต้องปรับขนาดหน้าต่างเทอร์มินัลของฉันเพื่อส่งสัญญาณอะไรก็ตามที่screenจำเป็นในการปรับขนาดจริง
krs013

ปัญหาเหล่านี้ไม่ได้ผลสำหรับฉันอาจเป็นเพราะฉันใช้เทอร์มินัลอื่น (iTerm2 บน Mac) พอดีไม่ทำงานดังนั้นฉันจึงถอดออกและติดตั้งใหม่โดยใช้screen -D -rและลองปรับขนาดหน้าต่าง แต่ก็ยังคงเหมือนเดิม เมื่ออยู่ในกลุ่มผมจะเห็นว่าถูกกำหนดให้columns 204
haridsv

screen -D -r ทำงานให้ฉันหลังจากลองใช้ตัวเลือกอื่น ๆ ตามที่คุณบอก Stew - หน้าจอของฉันยังคงปรากฏขึ้นตามที่แนบมาเมื่อฉันวิ่งหน้าจอ -ls
Hayden Crocker

8

โปรดทราบว่าคำตอบนี้ใช้กับ PuTTY เท่านั้น ฉันก็ถูกบังคับให้ใช้ระบบปฏิบัติการที่ฉันไม่ต้องการและ PuTTY เป็นตัวเลือกเดียวเท่านั้นเนื่องจากข้อ จำกัด อื่น ๆ ในระบบ ฉันมีปัญหาเดียวกันหน้าจอของฉันจะปรับขนาดเมื่อเริ่มต้นหรือเชื่อมต่อกับเซสชันหน้าจอที่มีอยู่ ฉันลองคำตอบที่นี่เพื่อประโยชน์ (Windows 10 ที่ติดตั้ง PuTTY 0.67 ผ่านทาง MSI) คำตอบเหล่านี้อาจทำงานร่วมกับเทอร์มินัล UN * X มาตรฐาน แต่ไม่ใช่กับ PuTTY มันเป็นสัตว์ร้ายที่แตกต่างกัน

ฉันไปขุดในตัวเลือกและแท้จริงและดูเถิดภายใต้ "Terminal -> คุณสมบัติ" มีตัวเลือกที่มีข้อความว่า "ปิดการใช้งานการปรับขนาดขั้วควบคุมระยะไกล" ทำเครื่องหมายที่ช่องใช้การตั้งค่าแล้วลองหน้าจออีกครั้ง ฉันคิดว่าคุณจะพบปัญหาได้รับการแก้ไข


KiTTYเป็นการแทนที่แบบแทนที่ที่ดีกว่ามากสำหรับ PuTTY บนระบบปฏิบัติการที่คุณถูกบังคับให้ใช้ ...
Anubioz

5

ลองเพิ่มสิ่งนี้ (จาก / etc / screenrc) ไปที่ ~ / .screenrc ของคุณ:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

https://superuser.com/a/217281/6593


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