Bagaimana cara menukar dua panel di Tmux?

208

Saya memiliki dua panel di split horisontal. Saya ingin memiliki panel saat ini di sebelah kanan untuk berada di sebelah kiri di jendela. Saya tidak berbicara tentang memindahkan fokus ( Ctrl+ B o). Bagaimana saya mencapai ini?

'panel kiri' <--> 'panel kanan'

gagak gagak
sumber

Jawaban:

307

The swap-paneperintah dapat melakukan ini untuk Anda. The {dan }kunci terikat untuk swap-pane -Udan swap-pane -Ddalam konfigurasi default.

Jadi, untuk melakukan perubahan yang Anda inginkan, Anda mungkin dapat menggunakan Prefix {ketika Anda berada di panel kanan (atau Prefix }jika Anda berada di panel kiri).

The -Udan -Dmerujuk ke "atas" dan "turun" dalam urutan indeks pane ("atas" adalah arah yang sama yang Prefix obergerak melintasi panel). Anda dapat melihat indeks panel dengan display-panes( Prefix q, secara default).

Chris Johnsen
sumber
8
+1 untuk menentukan Prefixalih-alih dengan anggapan semua orang akan menggunakanCtrl-b
Aaron Wallentine
1
Sepakat. Lebih buruk lagi ketika orang menganggap Anda menggunakan Ctrl-a, karena merekalah yang tahu bahwa awalan dapat diubah agar sesuai dengan pengguna.
byxor
Lihat respons @ kay untuk penggunaan yang lebih umum swap-pane(dan jawaban atas pertanyaan dalam judul).
Jonathan
51

Anda dapat menekan Ctrl bdan terus menahan Ctrlsambil memukul o. Ini akan memutar semua panel yang ada di sekitar, jadi dalam kasus Anda itu akan menukar hanya dua panel yang ada.

Ctrl b+ Alt omemutar dengan cara yang berlawanan (berguna ketika Anda memiliki lebih dari dua panel).

joelostblom
sumber
Ya, kita ada di halaman yang sama. Tetapi setelah 'o' pertama, yang menyebabkan rotasi panel, 'o' berikutnya dikirim ke shell yang mendasarinya dan diproses oleh aplikasi apa pun yang ada di sana. Saya sedang memikirkan sesuatu yang mencurigakan dengan peta saya, atau mungkin sesuatu yang bergantung pada versi tmux. Terima kasih telah merespons.
Stabledog
1
@Stabledog Saya menggunakan tmux 2.3 saat ini, tapi saya pikir ini selalu berhasil untuk saya ... Saya tidak bisa memikirkan apa yang menjadi masalah. Kedengarannya aneh bahwa Ctrl+osedang dikirim ke shell bukannya ke tmux, terutama jika ini bukan kasus untuk berulang kali menekan Ctrl+b(atau perintah tmux lainnya?).
joelostblom
Sebenarnya saya pikir itu terjadi untuk semua perintah. Setidaknya, saya tidak mengetahui adanya kasus di mana saya bisa melakukan Ctrl + x, tekan tombol yang terikat pada beberapa operasi, dan tetap dalam mode "tmux keyboard". Saya hanya berasumsi itu dengan desain.
Stabledog
1
@Stabledog Sebenarnya, saya hanya memperhatikan bahwa satu-satunya perintah lain di mana saya dapat terus menahan kontrol dan mengulangi tombol lainnya adalah Ctrl+b;, yang terus memutar kursor di antara dua panel.
joelostblom
24

Kontrol paling tepat yang dapat Anda miliki adalah dengan menggunakan perintah swap-pane secara langsung . Ini tidak begitu sulit untuk dilakukan:

  1. ctrl-b qmenampilkan "ID" untuk setiap panel di jendela saat ini - ingat dua panel yang ingin Anda tukarkan. Katakanlah mereka 3 dan 5.
  2. ctrl-b :untuk mengaktifkan baris perintah tmux. Kemudian keluarkan perintah swap-pane -s 3 -t 5.

Perhatikan bahwa Anda memiliki penyelesaian otomatis saat mengetik perintah. Anda juga dapat mencari sintaks suatu perintah langsung dari tmux manpage . Begitulah cara saya mempelajari sintaksis swap-pane.

Kay
sumber