มีวิธีง่าย ๆ ในการ“ รีสตาร์ท” บานหน้าต่าง tmux หรือไม่?


47

สมมติว่าฉันมีการtmuxแบ่งหน้าต่าง (1.7) ดังนี้:

 ________________________
|           1            |
|                        |
|-----------+------------|
|     2     |      3     |
|___________|____________|

ตอนนี้ขนาดแนวตั้งได้รับการปรับแต่งดังนั้นจึงไม่มีรูปแบบเริ่มต้นอย่างใดอย่างหนึ่ง

ในบางครั้งเมื่อโปรแกรมค้างหรือเมื่อคุณรีบูทเครื่องที่คุณเชื่อมต่อผ่านsshบานหน้าต่าง "ค้าง" ฉันไม่มีอะไรอื่นนอกจากkill-paneปรากฏว่าทำงานได้

อย่างไรก็ตามเนื่องจากไม่มีวิธีง่ายๆในการสร้างการกำหนดค่าแบบแยกอีกครั้งเมื่อบานหน้าต่าง # 1 เป็นkill-paned ดังนั้นฉันจึงต้องการ "รีสตาร์ท"

คำตอบ:


81

เมื่อดูคู่มือแล้วคำสั่งนั้นrespawn-paneทำให้ฉัน แต่มันกลับกลายเป็นว่าสิ่งนี้ไม่ได้ผล การอ่านอย่างละเอียดยิ่งขึ้นมันกลับกลายrespawn-pane -kเป็นคำตอบเพราะมันจะฆ่าคำสั่งที่รันอยู่

วิธีนี้บานหน้าต่างสามารถ "รีสตาร์ท" และวางใหม่อีกครั้งในสถานที่

ดังนั้น<prefix>+ :จากนั้นป้อนrespawn-pane -kและกดEnter


4
หรือใช้โดยไม่ต้อง-kถ้าคุณสร้างบานหน้าต่างในremain-on-exitโหมดและฆ่าคำสั่งด้วยตัวเอง
peterph

เจ้าได้รับการเลี้ยงใหม่แล้วอาเมน
ลูกเบี้ยวที่

4

ที่จริงแล้วมีวิธีสร้างเลย์เอาต์ใหม่ - list-windowsให้คำอธิบายเลย์เอาต์สำหรับหน้าต่างทั้งหมดในเซสชันและselect-layoutสามารถแยกวิเคราะห์สตริงและตั้งค่าเลย์เอาต์ได้อย่างเหมาะสม (ดูselect-layoutในหน้า man tmux(1))

สำหรับปัญหา ssh ของคุณ - เซิร์ฟเวอร์ ssh ควรปิดการเชื่อมต่อเมื่อระบบปิดตัวลง (แม้ว่าฉันจะได้เห็นการแจกแจงลินุกซ์บางอย่างซึ่งทำให้พฤติกรรมที่เหมาะสมโดยไม่ปิด ssh daemon และเรียกใช้เซสชันอย่างถูกต้อง) - ในกรณี ดูESCAPE CHARACTERSส่วน (และสถานที่อื่น ๆ ที่อ้างถึง) ในssh(1)ตัวหนี - ตามด้วย.(จุด) แรงยุติการเชื่อมต่อในฝั่งไคลเอ็นต์ แน่นอนว่ามันไม่ได้ช่วยอะไรถ้าคุณเพิ่งวางไข่บานหน้าต่างด้วยการsshทำงาน แต่ถ้าคุณประสบปัญหาบ่อยขึ้นบางทีคุณอาจต้องการที่จะเรียกใช้เชลล์ในบานหน้าต่างและเรียก ssh จากที่นั่น


ฉันยกระดับคำตอบของคุณเพราะมันเพิ่มคุณค่า แต่นี่คือเหตุผลว่าทำไมอักขระตัวเลี่ยงไม่จำเป็นต้องเป็นความคิดที่ดี: ใช้เซสชัน ssh เพื่อเชื่อมต่อกับเซสชัน tmux ซึ่งมีการเชื่อมต่อแบบเปิด ssh จากนั้นคุณต้องคิดเกี่ยวกับวิธีการส่งตัวอักษรหลบหนีออกไปนอกเหนือจากการเชื่อมต่อ ssh แรกเพื่อเข้าถึงตัวละครใน และ btw ฉันมักจะเรียกใช้ ssh จากเปลือก
0xC0000022L

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