Lampirkan ke berbagai jendela dalam sesi

117

Saya memiliki sesi tmux yang cukup sederhana berjalan dengan dua jendela terbuka; salah satunya untuk peretasan lokal dan satu untuk pekerjaan.

Yang ingin saya lakukan adalah hanya terhubung ke jendela peretasan sambil membiarkan jendela kerja terbuka di terminal lain. Namun, begitu saya terhubung ke tmux, semua perintah dikirim ke kedua jendela, jadi jika saya beralih ke jendela lain, hal yang sama terjadi di terminal lain dan sebaliknya.

Apakah ada cara bagi saya untuk hanya terhubung ke setiap jendela secara terpisah?

Naftuli Kay
sumber

Jawaban:

153

Alasan kedua klien beralih windows pada saat yang sama adalah karena keduanya terhubung ke sesi yang sama ("jendela saat ini" adalah atribut dari sesi, bukan klien). Yang dapat Anda lakukan adalah menautkan satu atau lebih jendela ke dalam beberapa sesi berbeda. Karena setiap sesi memiliki "jendela aktif" sendiri, Anda dapat beralih jendela secara mandiri di setiap sesi.

Cara termudah untuk menggunakan fitur ini adalah dengan menggunakan fitur "sesi yang dikelompokkan" dari new-sessionperintah:

$ tmux new-session -t 'original session name or number'

Untuk melihat sesi yang saat ini tersedia:

$ tmux list-sessions

Setiap sesi dalam sebuah grup akan secara otomatis berbagi set windows yang sama: membuka / menautkan (atau menutup / membatalkan tautan) sebuah jendela dalam satu sesi grup secara otomatis menyebabkan jendela yang sama untuk ditautkan (atau tidak ditautkan) di semua sesi lain dari kelompok.

Ketika Anda selesai dengan sesi "ekstra" Anda, Anda dapat membunuhnya dengan kill-session. Jendela itu sendiri tidak akan dibunuh kecuali sesi Anda adalah satu-satunya yang mereka tautkan. Atau, Anda dapat memutuskan sambungan dari sesi "ekstra" seperti biasa (Awalan d, atau detach-client); jika Anda tetap menjaga sesi "ekstra" Anda (hanya dengan melepaskannya), Anda mungkin ingin memberikannya nama deskriptif (Awalan $, atau rename-session) sehingga Anda dengan mudah mengidentifikasinya dan menyambungkannya kembali nanti (Anda mungkin juga ingin memberikan sesi "asli" nama, juga).


Jika Anda tidak ingin berbagi secara otomatis set windows yang dinamis, maka Anda dapat menggunakan link-window(dan unlink-window) untuk membawa windows individual ke dalam (dan keluar dari) sesi "pribadi" Anda sendiri; ini menawarkan akses non-otomatis, dan tingkat yang lebih rendah ke fungsionalitas inti yang sama yang menjadi dasar “sesi-sesi yang dikelompokkan” (windows dihubungkan ke beberapa sesi).

Chris Johnsen
sumber
12
Gread menjawab. Apakah Anda tahu cara mencegah 2 sesi terbuka agar tidak menyinkronkan ukurannya? Jika saya membuat sesi baru dan jendelanya lebih kecil, banyak layar real estat yang asli terbuang sia-sia.
defhlt
32
Saya telah menemukan jawaban untuk T saya:setw -g aggressive-resize on
defhlt
1
Ini didukung sebagai mode "nakal" di wemux .
blueyed