ฉันเป็นผู้ใช้งาน Screen อย่างหนักมาเป็นเวลานาน แต่ฉันใช้รุ่นที่ฉันแก้ไขไปในปี 2002 ส่วนใหญ่เป็นเพราะฉันต้องการให้มีหน้าต่าง "next / prev" การสั่งการนำทางตรงกับคำสั่งที่ใหม่ หน้าต่างถูกสร้างขึ้นคล้ายกับการจัดการหน้าต่างปูกระเบื้องเช่นi3หรือไอออน พฤติกรรมหน้าจอมาตรฐานใช้สำหรับ 'ถัดไป' และ 'ก่อนหน้า' เพื่อไปตามหมายเลขหน้าต่างดังนั้นโดยปกติแล้วหน้าต่าง 'ใหม่' (จับหมายเลขที่เล็กที่สุดที่มีอยู่) จะอยู่ที่อื่นนอกเหนือจากหน้าต่าง 'ถัดไป' - ทำให้สับสนหากคุณไม่ได้ จำตัวเลขไม่ได้ พฤติกรรมที่ฉันชอบได้ถูกนำมาใช้ใน Tmux เป็นค่าสถานะคำสั่งหน้าต่างใหม่ในปี 2010และตัวเลือก renumber-windows ในปี 2012. โปรแกรมแก้ไขหน้าจอของฉันซึ่งฉันพยายามทำให้ยอมรับได้มากที่สุดรวมถึงการเพิ่มเอกสารและอื่น ๆ ไม่ได้สร้างการสนทนาใด ๆ ในรายการหน้าจอในเดือนกรกฎาคม 2002 (จากนั้น "screen@informatik.uni-erlangen.de" ไม่สามารถทำได้ ค้นหาคลังเก็บ) ในความเป็นจริงมันไม่ได้รับการยอมรับแม้เมื่อฉันส่งมันอีกครั้งในปีต่อมา
ตั้งแต่ปี 2002 ฉัน "rebased" แพตช์ของฉันสองสามครั้งเพื่อนำไปใช้กับ Screen เวอร์ชั่นใหม่กว่า แต่เมื่อผมได้ไปเป็นเวอร์ชั่น 4.3 (2015) ผมสังเกตเห็นการเปลี่ยนแปลงที่ไม่มีเอกสารที่ยากจนหนึ่งของการใช้งานของฉันของหน้าจอ - คือว่า'สิ่ง' ตอนนี้สอดแทรกตัวแปรสภาพแวดล้อม ฉันไม่ต้องการฟีเจอร์นั้นและฉันไม่สามารถหาวิธีที่จะหลบหนีการโต้เถียงไปยัง 'สิ่งของ' ได้อย่างง่ายดาย (เพื่อให้ฉันสามารถส่งข้อความที่มีเครื่องหมายดอลลาร์) ดังนั้นฉันจึงใช้เวอร์ชั่น 4.0 (ตั้งแต่ปี 2004)
ฉันใช้ 'ข้อมูล' ของ 'Screen' ('send-keys' ใน Tmux) ในฟังก์ชัน Emacs ซึ่งส่งเนื้อหาของภูมิภาค Emacs ปัจจุบันไปยังหมายเลขหน้าต่างที่ระบุ ด้วยวิธีนี้เมื่อฉันเขียนโค้ดในภาษาสคริปต์ฉันเปิดล่ามฉันให้หมายเลขพิเศษในหน้าต่าง intepreter จากนั้นฉันสามารถส่งบรรทัดของรหัสจากหน้าต่างแก้ไขของฉันไปยังหน้าต่างล่ามโดยใช้การเชื่อม Emacs นี้ มันแฮ็ก แต่ฉันชอบมันดีกว่าวิธีการแก้ปัญหาของ Emacs อย่างแท้จริงเพราะฉันสามารถโต้ตอบกับล่ามในหน้าต่างหน้าจอของมันโดยใช้การกดแป้นมาตรฐาน มันค่อนข้างเหมือนกับ GUI IDE แต่ฉันไม่ต้องใช้เมาส์หรือจ้องที่เคอร์เซอร์กะพริบ
คุณสมบัติอื่นที่ฉันนำมาใช้ในโปรแกรมแก้ไขของฉันคือความสามารถในการ "ทำเครื่องหมาย" หน้าต่างและจากนั้นเปลี่ยนตำแหน่งหน้าต่างที่ทำเครื่องหมายให้เป็น "ถัดไป" หลังจากหน้าต่างปัจจุบัน สำหรับฉันนี่เป็นวิธีที่เป็นธรรมชาติมากกว่าในการจัดลำดับหน้าต่างใหม่ มันเหมือนกับกระบวนทัศน์คัดลอก / วางหรือ "ลากแล้วปล่อย" (ฉันเพิ่งค้นพบวิธีการทำเช่นนี้ใน i3เช่นกัน)
มันควรจะเป็นไปได้ที่จะทำสิ่งเดียวกันใน Tmux เช่นในปี 2015มีสิ่งอำนวยความสะดวกสำหรับ "ทำเครื่องหมาย" บานหน้าต่าง หรืออาจจะเป็นวิธีแก้ปัญหาเบื้องต้นที่สามารถใช้งานได้กับสคริปต์ shell แบบ stateful ฉันใช้สคริปต์สั้น ๆ และการโยงคีย์เพื่อลองใช้วิธีการ "ทำเครื่องหมายบานหน้าต่าง" และใช้งานได้สองสามครั้ง แต่ Tmux ขัดข้องด้วย "[เซิร์ฟเวอร์ที่หายไป]" จากนั้นฉันก็พบว่า Tmux หยุดทำงานแม้จะไม่พยายามทำอะไรที่ซับซ้อน เห็นได้ชัดว่าจะได้รับการกระแทกสำหรับผู้ใช้บางสำหรับไม่กี่ปีที่ผ่านมาอย่างน้อย บางครั้งเซิร์ฟเวอร์ล่มบางครั้งก็เริ่มใช้ CPU 100% และไม่ตอบสนอง ฉันไม่เคยเห็นหน้าจอทำอย่างใดอย่างหนึ่งเหล่านี้
ในทางทฤษฎี Tmux นั้นเหนือกว่า Screen ในหลาย ๆ ทาง มันมีความสามารถในการเขียนสคริปต์ที่ดีกว่าซึ่งหมายความว่าคุณสามารถทำสิ่งต่าง ๆ เช่นสืบค้นรายการหน้าต่างในเซสชันปัจจุบันจากบรรทัดคำสั่งซึ่งเป็นไปไม่ได้กับหน้าจอ ยกตัวอย่างเช่นในปี 2015 หน้าจอเพิ่มคำสั่งไปยัง "หน้าต่างจัดเรียงตามชื่อ" ฉันไม่แน่ใจว่าเมื่อใดที่คำสั่งพิเศษดังกล่าวจะมีประโยชน์ แต่สิ่งนี้และรูปแบบที่ใช้งานได้จริง (เช่นเรียงลำดับหน้าต่างด้วยการใช้งาน CPU) สามารถทำได้ง่ายจากเชลล์สคริปต์ใน Tmux สำหรับฉันมันดูเหมือนยากที่จะทำสิ่งใดก็ตามที่สร้างสรรค์ในหน้าจออย่างน้อยโดยไม่ต้องแก้ไขรหัส C
ดังที่ผู้โพสต์คนอื่นพูดถึง Tmux มีรูปแบบเซิร์ฟเวอร์เดียวซึ่งฉันเห็นว่าเป็นข้อเสียเปรียบหลักโดยเฉพาะอย่างยิ่งเมื่อเซิร์ฟเวอร์หยุดทำงาน เป็นไปได้ที่จะหลีกเลี่ยงปัญหานี้ด้วยการระบุซ็อกเก็ตแยกต่างหากสำหรับ "เซสชัน" แต่ละรายการ ฉันยังคงชอบค่าเริ่มต้นหนึ่งเซิร์ฟเวอร์ต่อเซสชันของหน้าจอซึ่งดูสง่างามกว่าเล็กน้อย
การทำงานกับรหัสหน้าจอย้อนกลับไปในปี 2545 เป็นเรื่องที่สนุกและสนุกสำหรับฉัน เพียงพอสำหรับคุณสมบัติเพิ่มเติมทั้งหมดของ Tmux นั้นมีโค้ดน้อยกว่าหน้าจอประมาณ 25% (30k vs 40k) ฉันสังเกตเห็นว่า Tmux ใช้โครงสร้างต้นไม้และรายการข้อมูลจำนวนมากซึ่งเป็นเรื่องยากสำหรับฉันที่จะเข้าใจ หน้าจอดูเหมือนจะชอบอาร์เรย์
ดังที่ฉันเข้าใจแล้วเนื่องจากอินเตอร์เฟสเทอร์มินัล Unix นั้นมีความเสถียรดังนั้นจึงมีความต้องการเล็กน้อยสำหรับรหัส Screen หรือ Tmux เพื่อปรับให้เข้ากับการเปลี่ยนแปลงในระบบปฏิบัติการพื้นฐาน โปรแกรมเหล่านี้ไม่มีการปรับปรุงความปลอดภัยเช่นเว็บเบราว์เซอร์หรือเว็บเซิร์ฟเวอร์หรือแม้แต่เปลือกหอย ฉันไม่ได้สังเกตเห็นปัญหาใด ๆ ในการเรียกใช้หน้าจอรุ่นที่กำหนดเองของฉันซึ่งอัปเดตครั้งล่าสุดในปี 2004 (ยกเว้นจำเป็นต้องเพิ่มไฟล์การกำหนดค่าบางอย่างเพื่อป้องกัน Systemd ไม่ให้ลบซ็อกเก็ต; ไฟล์เหล่านี้มักเป็นส่วนหนึ่งของแพ็คเกจการกระจาย) บางทีฉันสามารถแก้ไขปัญหาที่ฉันพบใน Tmux โดยใช้รุ่น Tmux จากก่อนที่จะเริ่มทำงานล้มเหลว แน่นอนหากมีผู้ใช้เพียงพอที่ทำสิ่งนี้จะไม่ดีสำหรับผู้ใช้ใหม่เนื่องจากหมายความว่ามีผู้เชี่ยวชาญน้อยลงที่กำลังมองหาข้อบกพร่องในเวอร์ชันล่าสุดอย่างเป็นทางการของโปรแกรมเหล่านี้ อย่างไรก็ตามมันยากที่จะกระตุ้นให้ตัวเองเปลี่ยนไปใช้ผลิตภัณฑ์ที่ไม่เสถียรสำหรับฉัน (Tmux ล่าสุด) หรือขาดคุณสมบัติบางอย่างที่ฉันต้องการ (หน้าจอมาตรฐาน)
ฉันรู้ว่านี่ไม่ได้ตอบคำถามง่ายๆของ OP แต่หวังว่ามุมมองของฉันจะมีประโยชน์