หนึ่งสลับสองบานหน้าต่างใน Tmux ได้อย่างไร


207

ฉันมีบานหน้าต่างสองบานในแนวนอน ฉันต้องการที่จะมีบานหน้าต่างด้านขวาจะอยู่ทางซ้ายในหน้าต่าง ฉันไม่ได้พูดเกี่ยวกับการย้ายโฟกัส ( Ctrl+ B o) ฉันจะบรรลุสิ่งนี้ได้อย่างไร

'บานหน้าต่างด้านซ้าย' <--> 'บานหน้าต่างด้านขวา'

คำตอบ:


304

swap-paneคำสั่งสามารถทำเช่นนี้สำหรับคุณ {และ}กุญแจที่จะผูกพันswap-pane -Uและswap-pane -Dในการกำหนดค่าเริ่มต้น

ดังนั้นเพื่อให้เกิดการเปลี่ยนแปลงตามที่คุณต้องการคุณสามารถใช้Prefix {เมื่อคุณอยู่ในบานหน้าต่างด้านขวา (หรือPrefix }ถ้าคุณอยู่ในบานหน้าต่างด้านซ้าย)

-Uและ-Dอ้างถึง“ขึ้น” และ“ลง” ในการสั่งซื้อดัชนีบานหน้าต่าง (“ขึ้น” เป็นทิศทางเดียวกับที่Prefix oเคลื่อนผ่านบานหน้าต่าง) คุณสามารถดูดัชนีบานหน้าต่างด้วยdisplay-panes( Prefix qโดยค่าเริ่มต้น)


8
+1 สำหรับการระบุPrefixแทนที่จะสมมติว่าทุกคนจะใช้Ctrl-b
Aaron Wallentine

1
ตกลง มันยิ่งแย่ลงเมื่อมีคนคิดว่าคุณกำลังใช้Ctrl-aเพราะพวกเขาเป็นคนที่รู้ว่าคำนำหน้าสามารถเปลี่ยนให้เหมาะกับผู้ใช้
byxor

ดูการตอบสนองของ @ kay สำหรับการใช้งานทั่วไปswap-pane(และตอบคำถามในชื่อเรื่อง)
Jonathan

50

คุณสามารถกดCtrl bและให้ถือลงขณะที่กดปุ่มCtrl oสิ่งนี้จะหมุนบานหน้าต่างที่มีอยู่ทั้งหมดไปรอบ ๆ ดังนั้นในกรณีของคุณมันจะสลับบานหน้าต่างที่มีอยู่สองบานเท่านั้น

Ctrl b+ Alt oหมุนทางตรงกันข้าม (มีประโยชน์เมื่อคุณมีบานหน้าต่างมากกว่าสองบาน)


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

1
@Stabledog ฉันใช้ tmux 2.3 อยู่ในขณะนี้ แต่ฉันคิดว่านี่ใช้ได้กับฉันเสมอ ... ฉันไม่สามารถคิดได้ว่าอะไรจะเป็นปัญหา ฟังดูแปลกที่Ctrl+oการส่งไปยังเชลล์แทนที่จะไปที่ tmux โดยเฉพาะอย่างยิ่งหากไม่ใช่กรณีสำหรับการกดซ้ำ ๆCtrl+b(หรือคำสั่ง tmux อื่น ๆ ?)
joelostblom

ที่จริงฉันคิดว่ามันเกิดขึ้นสำหรับคำสั่งทั้งหมด อย่างน้อยฉันก็ไม่ทราบว่ากรณีใดที่ฉันสามารถทำ Ctrl + x, กดปุ่มที่ถูกผูกไว้กับการดำเนินการบางอย่างและอยู่ในโหมด "tmux keyboard" ฉันแค่คิดว่าเป็นเพราะการออกแบบ
Stabledog

1
@Stableog ที่จริงแล้วฉันเพิ่งสังเกตเห็นว่าคำสั่งอื่น ๆ เท่านั้นที่ฉันสามารถควบคุมค้างไว้และทำซ้ำปุ่มอื่น ๆ คือการCtrl+b;หมุนเคอร์เซอร์ระหว่างสองบานหน้าต่าง
joelostblom

24

การควบคุมที่แม่นยำที่สุดที่คุณสามารถมีได้โดยใช้คำสั่งโดยตรงswap-pane นี่ไม่ใช่เรื่องยากที่จะทำ:

  1. ctrl-b qแสดงให้คุณเห็น "ID" สำหรับแต่ละบานหน้าต่างในหน้าต่างปัจจุบัน - จำสองบานหน้าต่างที่คุณต้องการสลับ สมมุติว่าพวกมันคือ 3 และ 5
  2. ctrl-b :เพื่อเปิดใช้งานบรรทัดคำสั่ง tmux swap-pane -s 3 -t 5แล้วออกคำสั่ง

โปรดทราบว่าคุณมีการเติมข้อมูลอัตโนมัติเมื่อพิมพ์คำสั่ง นอกจากนี้คุณสามารถค้นหาไวยากรณ์ของคำสั่งโดยตรงจากmanpage tmux swap-paneนั่นเป็นวิธีที่ผมได้เรียนรู้ไวยากรณ์สำหรับ

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