ฉันจะสมดุล tmux (1) split panes ได้อย่างไร?


217

ฉันกำลังมองหาพฤติกรรมที่คล้ายกับวิธีการที่เป็นกลุ่ม (1) ^w =จัดการหน้าต่างแยกกับ ฉันรู้ว่า tmux (1) มีโครงร่างที่กำหนดไว้ล่วงหน้าด้วย^b Meta[1-5]แต่สิ่งนี้อาจไม่มีเค้าโครงที่ฉันใช้อยู่ในปัจจุบัน

เมื่อแบ่งหน้าต่างจะแบ่งครึ่งหน้าต่างปัจจุบันออกเป็นสองบาน แยกอีกครั้งและแบ่งครึ่งบานหน้าต่างนั้นออกเป็นสองรายการใหม่ รวมการแยกแนวตั้งและแนวนอนและพวกเขายังคงแบ่งกันครึ่งหนึ่งแต่ละบานหน้าต่างใหม่จะเล็กลงเรื่อย ๆ

ฉันจะสร้างเลย์เอาต์ใหม่ที่ฉันเพิ่งสร้างขึ้นได้อย่างไร แต่มีการแบ่งในแนวตั้งและแนวนอนที่สมดุลเท่า ๆ กันเช่น vim (1) ทำด้วย^w =?


คำอธิบายสำหรับเลย์เอาต์ "กระเบื้อง" บอกว่า "บานหน้าต่างจะกระจายออกไปอย่างสม่ำเสมอเท่าที่เป็นไปได้บนหน้าต่างในทั้งแถวและคอลัมน์" คุณช่วยอธิบายว่าสิ่งที่คุณต้องการแตกต่างจากสิ่งนี้ได้ไหม
Lars Kotthoff

1
แน่ใจ สิ่งนี้อธิบายได้ดีมาก: gist.github.com/1942422
Aaron Toponce

คำตอบ:


284

ดิ่ง

select-layout even-vertical
โดยปกติแล้วจะกำหนดให้: Ctrl+ b, Alt+2

แนวนอน

select-layout even-horizontal
โดยปกติแล้วจะกำหนดให้: Ctrl+ b, Alt+1


70
สำหรับคนอื่น ๆ ที่สงสัย: C-b M-2หมายถึง Control-b และM-2หมายถึง alt + 2
Christophe De Troyer

29
M-2 หมายถึง ESC + 2 สำหรับฉันใน Debian โดยใช้ Gnome Terminal อาจขึ้นอยู่กับการตั้งค่า
arcyqwerty

7
C-...และM-...emacs-ims M- หมายถึง "meta" ซึ่งเป็น [Alt] ร่วมกับหรือ [Esc] ตามด้วยคีย์อ้างอิงทั้งสองตัวเลือกมีลักษณะเหมือนกันกับสาย แต่มีความเป็นไปได้ที่ GUI ของคุณอาจวางกับ [ Alt] ลำดับ
Jasen

3
เพียงแค่ใส่ที่นี่ในกรณีที่ช่วยคนอื่นเพราะฉันสับสนตลอดเวลา "แนวตั้ง" และ "แนวนอน" เป็นทิศทางของระยะห่าง -นั่นคือการเลือกแนวตั้งแบบคู่จะสร้างเค้าโครงที่สามบานหน้าต่างซ้อนกัน ในแนวตั้งความสูงเท่ากันโดยที่แนวนอนจะสร้างเค้าโครงที่ทั้งสามบานเป็นแบบเคียงข้างกันโดยมีความกว้างเท่ากัน
A. Wilson

วิธีทำ M-2 บน macOS ด้วยแป้นพิมพ์ที่ "2" ต้องกด shift (เช่นแป้นพิมพ์ภาษาฝรั่งเศส) ฉันไม่ประสบความสำเร็จด้วยการรวมกันของ alt, การควบคุม, การสั่งการ, หลบหนีและการเปลี่ยน + 2 ...
Eric O Lebigot

95

คุณสามารถใช้ctrl-b spaceเพื่อวนรอบเลย์เอาต์ด้วยการเว้นวรรคแม้จะไม่จำเป็นต้องรักษาเลย์เอาต์ที่คุณมี


2
คิดที่อยู่เบื้องหลังเคล็ดลับ bind-key -r Space next-layout(ถ้าคุณต้องการที่จะแผนที่ไปยังสิ่งอื่นหรือปรับ): จากนั้นC-b Space Space Space...
BenC

3
มีวิธีใดที่จะทราบว่าฉันได้เลือกเลย์เอาต์ใดและจะข้ามไปยังอีกได้อย่างรวดเร็วหรือไม่?
ฮิวจ์

20

จากบรรทัดคำสั่งคุณสามารถใช้

tmux select-layout tiled

เพื่อทำให้การแบ่งของคุณมีขนาดเท่ากันโดยประมาณ คุณสามารถผูกมันกับคำสั่งคีย์ได้เช่นกัน


3
โดยปกติจะกำหนดให้:C-b M-5
ขั้นต่ำ

7

ฉันไม่ทราบว่ามีทางลัดคีย์เดียว แต่อาจช่วยคุณได้:

คุณสามารถลองเขียนสคริปต์เพื่อทำเลย์เอาต์และผูกกุญแจเข้ากับสคริปต์ คุณสามารถทำได้โดยใช้tmuxคำสั่งpipe-pane [-o] [-t target-pane] [shell-command]เพื่อเขียนเค้าโครงปัจจุบันไปยังสคริปต์ ถัดไปคุณจะต้องอ่านรูปแบบที่จัดทำโดยสคริปต์โดยใช้คำสั่งtmuxselect-layout


1

ฉันมีช่วงเวลาที่ยากลำบากในการหาคาถาเวทมนต์เพื่อแบ่งออกเป็นสี่ภาคเท่ากันดังนั้นนี่คือ:

# Split session into FOUR EQUAL quadrants
tmux selectp -t 0    # select the first (0) pane
tmux splitw -h -p 50 # split it into two halves
tmux selectp -t 0    # select the first (0) pane
tmux splitw -v -p 50 # split it into two halves

tmux selectp -t 2    # select the new, second (2) pane
tmux splitw -v -p 50 # split it into two halves
tmux selectp -t 0    # go back to the first pane

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