tmux กับหน้าจอ


262

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


7
นอกจากนี้ยังกล่าวถึงที่unix.stackexchange.com/questions/549/tmux-vs-gnu-screen
Lloyd Dewolf

2
ในหน้าจอคุณสามารถส่งคำสั่งไปยังเซสชันที่แนบผ่านทางscreen -S automate_me -X stuff 'command'$(echo -ne '\015')คุณไม่สามารถใน tmux ค่อนข้างมีประโยชน์หากคุณกำลังทดสอบ ISO / อิมเมจเสมือนจริงและต้องทำคำสั่งบางอย่างจากระยะไกลอย่างรวดเร็ว ตัวอย่างเช่นฉันมีในคำสั่ง Vim เพื่อดีบักสคริปต์อย่างรวดเร็วในหน้าจอ Virtualbox ใน tmux เวอร์ชันก่อนหน้าฉันพบว่าหน้าจอจัดการข้อความที่ส่งผ่านได้เร็วขึ้นในขณะที่ tmux ขัดข้อง นอกจากนี้หน้าจอไม่จำเป็นต้องมีการกำหนดค่าใด ๆ ในการจัดการ UTF-8 และอื่น ๆ tmux
dezza

ไม่tmuxจัดการhistoryอย่างถูกต้อง?
beroe

คำตอบ:


170

เหตุผล (หลัก) ที่ฉันชอบtmuxมากกว่าscreen:

  • แถบสถานะนั้นใช้งานง่ายกว่ามาก คุณสามารถตั้งค่าข้อความ / สไตล์ที่แตกต่างกันสำหรับหน้าต่างปัจจุบันหน้าต่างที่มีกิจกรรม ฯลฯ และคุณสามารถวางสิ่งต่าง ๆ ไว้ทางซ้ายและขวาของแถบสถานะรวมถึงคำสั่งเชลล์ที่สามารถรันในช่วงเวลาที่กำหนด (ค่าเริ่มต้น 15 วินาที)
  • เกือบคำสั่งใด ๆ ที่คุณสามารถทำงานภายในสามารถทำงานจากเปลือกด้วยtmux tmux command [args]สิ่งนี้ทำให้สามารถสคริปต์ได้ง่ายเช่นเดียวกับการทำคำสั่งที่ซับซ้อนได้ง่าย
  • การเปลี่ยนชื่อหน้าต่างอัตโนมัติที่แม่นยำยิ่งขึ้นมากมาย ในขณะที่screenตั้งชื่อเรื่องโดยใช้คำแรกของคำสั่งและต้องการให้การกำหนดค่าเชลล์ทำแม้กระทั่งในหน้าต่างเชลล์tmuxติดตามว่ากระบวนการใดที่ทำงานอยู่ในแต่ละหน้าต่างจริง ๆ และอัพเดทชื่อให้สอดคล้องกัน วิธีนี้คุณจะได้รับการเปลี่ยนชื่อแบบไดนามิกด้วยเชลล์และการกำหนดค่าศูนย์ ตัวอย่างเช่นสมมติว่าคุณกำลังใช้งาน Z Shell ชื่อของหน้าต่างจะเป็น "zsh" sudo emacs /etc/somefileตอนนี้ขอบอกว่าคุณต้องการที่จะแก้ไขไฟล์การกำหนดค่าบางอย่างเพื่อให้คุณพิมพ์ ในขณะที่ sudo ขอรหัสผ่านของคุณชื่อของหน้าต่างจะเป็น "sudo" แต่เมื่อคุณทำเสร็จแล้วและsudoเปิดตัวemacsชื่อจะเป็น "emacs" เมื่อคุณทำเสร็จแล้วคุณก็ออกไปemacsชื่อจะเปลี่ยนกลับเป็น "zsh" นี้จะเป็นประโยชน์สวยสำหรับการติดตามของหน้าต่างและมันยังสามารถเป็นประโยชน์โดยเฉพาะอย่างยิ่งในสถานการณ์ที่เฉพาะเจาะจงเช่นถ้าคุณมีบางขั้นตอนยาวทำงานในหน้าต่างที่บางครั้งจะแจ้งให้คุณสำหรับการป้อนข้อมูลโดยใช้อื่นdialog; ชื่อหน้าต่างจะเปลี่ยนเป็น "กล่องโต้ตอบ" เมื่อเกิดขึ้นดังนั้นคุณจะรู้ว่าคุณต้องสลับไปที่หน้าต่างนั้นและทำอะไรบางอย่าง
  • การจัดการเซสชัน Nicer (IMHO) คุณสามารถทำได้มากขึ้นด้วยเซสชันภายในtmuxตัวเอง คุณสามารถสลับเปลี่ยนชื่อและอื่น ๆ ได้อย่างง่ายดายและคุณสามารถย้ายและแชร์หน้าต่างระหว่างเซสชัน นอกจากนี้ยังมีรูปแบบที่แตกต่างกันซึ่งผู้ใช้แต่ละคนมีเซิร์ฟเวอร์ที่ควบคุมเซสชันของตนและที่ลูกค้าเชื่อมต่อ ข้อเสียของสิ่งนี้คือถ้าเซิร์ฟเวอร์ล่มคุณจะสูญเสียทุกอย่าง ฉันไม่เคยมีปัญหากับเซิร์ฟเวอร์มาก่อน
  • tmuxดูเหมือนว่าจะมีการพัฒนาอย่างแข็งขันมากขึ้น มีการอัปเดตอยู่บ่อยครั้งและคุณสามารถยื่นรายงานข้อผิดพลาดหรือคำขอคุณสมบัติตามคำถามที่พบบ่อยนี้และรับคำตอบภายในสองสามวัน

สิ่งเหล่านี้เป็นเพียงสิ่งสำคัญที่เกิดขึ้นในใจทันที มีสิ่งเล็ก ๆ น้อย ๆ อื่น ๆ ด้วยและฉันแน่ใจว่าฉันลืมบางสิ่ง แน่นอนว่ามันคุ้มค่าที่จะtmuxลอง


151
การพัฒนา tmux มีการใช้งานมากขึ้นเพราะมันเป็นเรื่องใหม่ หน้าจอ GNU มีอายุเกือบ25 ปีดังนั้นพวกเขาจึงแก้ไขข้อบกพร่องส่วนใหญ่ได้
เงินที่จ่าย

8
ความคิดเห็นที่เสียค่าใช้จ่ายเป็นคุณสมบัติที่สำคัญมากในจุดสุดท้ายของคุณ และจุดที่สองตามที่ระบุไว้นั้นไม่ได้มีความแตกต่างตามที่ใช้กับหน้าจอเช่นกันเว้นแต่คุณจะเจาะจงมากขึ้น
jw013


11
@apaidnerd เป็นคำสั่งที่สมบูรณ์มาก: savannah.gnu.org/bugs/…
Bła --ej Michalik

93

( เซสชั่นคือชุดของหน้าต่างที่สามารถถอดออกและติดตั้งใหม่ได้ในภายหลัง Windows อาจมีบานหน้าต่างหนึ่งบานหรือมากกว่าตัวอย่างเช่น configs ลองดูที่นี่และที่นี่ )

tmux

  • ข้อดี
    • สามารถส่งคีย์ไปยังบานหน้าต่างอื่น ๆ ได้เช่นเดียวกับ IDE
    • ปุ่มลัดที่ใช้งานง่าย - ด้วยการกำหนดค่าที่เหมาะสมคุณจะรู้สึกเหมือนอยู่บ้านจาก Vim หรือ Screen
    • Vim-ish และ Emacs-ish ผูกติดตั้งในตัว
    • การจัดการรูปแบบที่ดีมากเช่นผู้จัดการหน้าต่างเรียงต่อกัน
    • ดูเหมือนว่า Unicode จะทำงานกับอาคารที่ทันสมัย
    • แก้ไขปัญหาเทอร์มินัลด้วย TERM=tmux
  • จุดด้อย
    • ช้า - ไม่แน่ใจว่าทำไม แต่การกดแป้นดูเหมือนช้าไม่มีปัญหากับความช้าอีกต่อไป
    • การมัลติเพล็กซ์จะบังคับให้ทั้งความกว้างและความสูงของเซสชันทั้งหมดไปยังเทอร์มินัลต่อพ่วงที่เล็กที่สุด
    • ขัดข้องหลายครั้งใน Mac OS X ทำให้สูญเสียทั้งเซสชัน
    • ล้มเหลวบน Linux หลังจากอัปเกรดแล้วซึ่งฉันไม่สามารถเชื่อมต่อกับเซสชันเดิมได้อีก
    • การกดแป้นคำสั่งไม่ทำงานเป็นครั้งคราว - ^A ^[ใช้เวลาพยายามสองสามครั้งเพื่อคัดลอกโหมด
    • ไม่สามารถย้ายบานหน้าต่างจากหน้าต่างหนึ่งไปยังอีกคงที่ด้วยjoin-paneคำสั่ง
    • ไม่มีการคลายสาย (หรือ "reflow" หรือ "rewrap") หลังจากเปลี่ยนความกว้างของเทอร์มินัล (การปรับขนาดหน้าต่าง)

หน้าจอ GNU

  • ข้อดี
    • มีเสถียรภาพมาก (v1.0 คือในปี 1987)
    • แก้ไขปัญหาเทอร์มินัลด้วย TERM=screen
    • Emacs-ish ผูกติดอยู่ในตัว
    • ง่ายต่อการเคลื่อนย้ายและควบคุมบานหน้าต่างแนวนอน
    • เมื่อมัลติเพล็กซ์เทอร์มินัลใด ๆ ที่เชื่อมต่อสามารถปรับขนาดบานหน้าต่างได้
  • จุดด้อย
    • ไม่มีการแยกแนวตั้งโดยไม่มีการแก้ไข (ยกเว้นใน Ubuntu)
    • การแตกบานหน้าต่างจะหายไปเมื่อถอดออก
    • การเรียกใช้ Unicode ในการทำงานนั้นใช้ความชำนาญและความตั้งใจ
    • การกำหนดค่าบรรทัดสถานะ Crazy

การกดแป้นพิมพ์ที่ล้าหลังเมื่อกด Esc เท่านั้น tmux มีความล่าช้าในการรอดูว่าคุณกำลังเข้าสู่ลำดับ xterm หรือเพียงแค่ Esc โดดเดี่ยวและเมื่อรวมกับกลุ่มของเสียงเรียกเข้าก็อาจดูเหมือนว่าค่อนข้างล่าช้า ตั้งค่า escape-time เป็นค่าที่ต่ำกว่าเช่น 50
Eevee

นอกจากนี้ยังตลกที่คุณพูด^A ^[ไม่ทำงานบางครั้ง; ฉันมีปัญหาเดียวกันกับหน้าจอ แต่ไม่เคย tmux! และผมเชื่อว่าคุณสามารถย้ายไปรอบ ๆ join-paneด้วยบานหน้าต่าง
Eevee

ฉันพบว่าหน้าจอใช้หน่วยความจำค่อนข้างมากซึ่งอาจรวมเป็นข้อเสีย
Paradroid

6
ดีtmuxครับกับvimในบางกรณี (เหมืองคือ) ไม่มีวิธีแก้ปัญหาที่เคยโพสต์ได้ทุกที่ทำงานและแม้กระทั่งคนที่ใช้เวลาในการแก้ปัญหาของเหมืองที่ไม่สามารถที่จะ มันน่ารำคาญเมื่อคุณไม่สามารถใช้<C-Left>และใน<C-Right> vim
yo '19

3
No vertical splits without patch (except on Ubuntu)ฉันไม่คิดว่าเป็นเรื่องจริง ฉันใช้หน้าจอมาหลายปีแล้วและฉันไม่เคยมีปัญหาใด ๆ ในการแยกเป็นแนวนอนหรือแนวตั้งบน Debian และ Fedora แม้แต่บน Android ที่มี Termux มันก็ทำงานได้เหมือนมีเสน่ห์
Forivin

11

โปรสำหรับหน้าจอ: มีให้ใช้งานได้ค่อนข้างมากใน Linux และ Solaris เมื่อคุณต้องสลับไปมาระหว่างแพลตฟอร์มเป็นเรื่องดีที่จะไม่มีการสลับบริบททางจิตใจ

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


10

ฉันใช้ tmux มาประมาณ 2 วันแล้วดังนั้นความกระตือรือร้นที่ไม่มีข้อ จำกัด ของฉันสำหรับเรื่องนี้ยังไม่ได้รับอารมณ์โดยการกดปุ่มกรณีการใช้ที่น่ารำคาญ ในขณะที่ต้องเผชิญกับความเจ็บปวดที่เพิ่มขึ้นตามปกติของการเปลี่ยนจากโปรแกรมหนึ่งไปเป็นอีกโปรแกรมหนึ่งฉันรู้สึกประทับใจกับคุณสมบัติที่ดีหลายอย่าง แต่คุณสมบัติที่ทำให้ฉันเชื่อว่าฉันจะไม่กลับไปที่หน้าจอเป็นโปรแกรมอรรถประโยชน์ของโหมดคัดลอก -n-paste ในหน้าจอคุณไม่สามารถเข้าสู่โหมดคัดลอกเลื่อนกลับไปที่บัฟเฟอร์แล้วไปที่หน้าต่างอื่น ใน tmux คุณสามารถมีหลายหน้าต่างพร้อมกันในโหมดการคัดลอกโดยที่บัฟเฟอร์เลื่อนกลับไปที่ตำแหน่งอื่น นอกจากนี้ยังมีบัฟเฟอร์การคัดลอกหลายรายการ และคุณไม่จำเป็นต้องแก้ไขซอร์สเพื่อรับการเคลื่อนไหวของเคอร์เซอร์ fFtT


8

สิ่งที่ฉันได้รับจาก tmux ที่ฉันไม่สามารถเข้าถึงได้อย่างง่ายดายบนหน้าจอคือ:

  1. ทำให้บานหน้าต่างแนวตั้งแยก
  2. มัลติเพล็กซิ่งซึ่งเราใช้สำหรับการจับคู่ระยะไกลและท้องถิ่น


ดังที่โพสต์ก่อนหน้านี้กล่าวถึงหน้าจอมีการแบ่งบานหน้าต่างแนวตั้ง (ต้องใช้แพทช์โดยไม่มี Ubuntu อย่างชัดเจน) นอกจากนี้มัลติเพล็กซ์ก็ทำงานได้ดีและมีมาหลายปี
EntangledLoops

การแยกในแนวดิ่งนั้นมีการฉีดscreenตั้งแต่ 4.2 ปล่อยออกมาในปี 2014 distros หลายรุ่นส่งเวอร์ชันเก่ามากโดยเฉพาะ Apple
Neal Fultz

2
จุดทั้งสองไม่ถูกต้อง
Forivin

2
คำตอบไม่ถูกต้องในปี 2018
Alec Istomin

5

ฉันได้เปลี่ยนหน้าจอ GNUกับtmuxในกรณีการใช้งานทุกยกเว้นหนึ่งเมื่อฉันต้องการHyperTerminalเทียบเท่ากับการเชื่อมต่อกับพอร์ตอนุกรม ตามที่ Aaron Toponce ตั้งข้อสังเกตไว้ในบทความของเขา"การเชื่อมต่อกับโมเด็ม Null แบบอนุกรมพร้อมหน้าจอ GNU" , tmuxระบุคำถามที่พบบ่อย :

หน้าจอมีการสนับสนุนอนุกรมและ telnet ในตัว นี่คือการขยายตัวและไม่น่าจะถูกเพิ่มใน tmux

ตามแบบฉบับของฉันtmuxกรณีการใช้งานคือการสร้างหลายบานหน้าต่างและการประชุมการพัฒนาหลายหน้าต่างร่วมกับtmuxinator ถ้าคุณต้องการที่จะเรียนรู้tmuxฉันขอแนะนำให้รับหนังสือของ Brian P. Hogan, tmux: การพัฒนาโดยไม่ต้องใช้เมาส์อย่างมีประสิทธิภาพ


คุณรู้จักcu Call up system อื่นหรือไม่? tty อนุกรมที่เรียบง่ายกว่าหน้าจอแต่มีน้ำหนักเบาและมีประโยชน์!
F. Hauri

2

ฉันเป็นผู้ใช้งาน 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 แต่หวังว่ามุมมองของฉันจะมีประโยชน์


2

Thomas Adam หนึ่งในผู้ดูแลของ tmux ยังได้รับการระบุว่าเป็นผู้ดูแลscreenโครงการแม้ว่าเขาจะแตะรหัส tmux เท่านั้น นี่เป็นโปรที่ยิ่งใหญ่ของ tmux บนหน้าจอ


1

ผมจะบอกว่าห้องว่างของหน้าจอที่มีความแข็งแรง แต่ระบบ Windowing ของมันไม่ได้เป็นเรื่องง่ายที่จะจัดการเป็น ‘s ฉันต้องบอกว่าฉันใช้ส่วนใหญ่ในเวลานี้และด้วยเหตุนี้จึงมีแท็บเทอร์มินัลมากมายแทนหน้าต่างหน้าจอ

@Jed Schneider: คุณจะได้รับการแยกบานหน้าต่างแนวตั้งด้วย Ctrl+ Aแล้ว|(แถบแนวตั้ง)

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