Pindahkan panel tmux ke sesi lain

43

Pendek melakukan ini , apakah mungkin untuk memindahkan perintah yang sedang berjalan di panel ke sesi tmux lain?

HEGX64
sumber

Jawaban:

68

Ya itu cukup mudah, gunakan move-paneperintah tmux. Untuk info lebih lanjut, jalankan

man tmux | less -I '+/mOVE-pane'

Bagian yang sulit adalah hanya mengetahui bagaimana sesi tmux referensi, jendela dan panel dalam perintah untuk memanipulasi panel dll.

Langkah pertama

Pindah ke panel yang ingin Anda pindahkan ke sesi lainnya

Langkah dua

Dapatkan nama sesi target dengan menjalankan <prefix>s.

Pada sistem saya yang menghasilkan:

 (0) + 0: 8 windows (attached)  
 (1) + 1: 1 windows 
       ^
       |
    This is the session name. It could be different 
    on your system and it could be a word (not just a number).

Langkah 3 - jalankan perintah

<prefix>:move-pane -t <session_name>:<window number>
                      ^^^^^^^^^^^^^^ the name from above goes in here

Jadi pada sistem saya, saya pindah ke panel dengan proses yang berjalan, berlari

<prefix>:move-pane -t 1:1

dan panel dengan proses di dalamnya dipindahkan ke jendela satu di sesi 1.

Itu dimasukkan sebagai split, jadi biasanya Anda ingin menjalankan jendela pada sesi lain sebagai jendela sekali pakai.

Catatan: sepertinya jendela target memang perlu ada, kalau tidak move-paneperintah akan mengeluarkan kesalahan.

Untuk latar belakang lebih lanjut tentang format untuk menentukan sesi, jendela dan panel dalam perintah tmux, lihat bagian COMMANDSdalam man tmux.

the_velour_fog
sumber
12
Ada prosedur yang lebih sederhana: tandai panel dengan <prefix>m, buka jendela tujuan dengan <prefix>wdan pindahkan panel yang ditandai di sana join-pane.
Dan Aloni
7

Saya tidak bisa berkomentar, jadi saya akan meletakkannya di sini: untuk tmux 2.1-3build1 ~ tepatnya perintahnya adalah:

<prefix>:move-pane -t session_name:window_number

- Anda memerlukan " -t" sebelum nama sesi (tidak harus angka), dan jendela dengan nomor yang diberikan harus ada.

Semua sisanya seperti yang dijelaskan oleh the_velour_fog dalam jawabannya .

PS Jika Anda hanya mengetik session_nametanpa window_numberseperti itu:

<prefix>:move-pane -t session_name:,

maka panel Anda akan dipindahkan ke jendela saat ini dari sesi tujuan (dan jendela ini akan dibagi).

PPS Jika Anda hanya ingin memindahkan jendela Anda (dan bukan hanya jendela Anda), maka ada jawaban yang bagus tentang cara Memindahkan jendela antara klien tmux :

<prefix>:move-window [-d] [-s src-window] [-t dst-window]

(alias: movew)

di mana src-windowdan dst-windowmemiliki formulir session:window.pane.

DIG mbl
sumber
-1

Saya memiliki dua sesi berjalan, masing-masing di iTerm mereka sendiri. Yang perlu saya lakukan untuk memindahkan panel dari satu sesi ke sesi lainnya adalah

pilih panel

<leader>s <session>

di mana <session>angka di dalam kurung kotak

tmux 2.7

Shane Howearth
sumber
Itu tidak benar-benar memindahkan panel dari satu sesi ke sesi lainnya. Itu hanya mengubah sesi yang Anda lihat dari terminal saat ini. Ini sama dengan memutuskan dan menghubungkan ke sesi lain. Saya ingin benar-benar dapat memindahkan panel antara sesi dengan beberapa panel lain terbuka.
HEGX64