it-swarm-tr.com

Tmux bölmesini pencereye taşıma

Birden çok pencerem olduğunda mevcut bir bölmeyi tmux içinde başka bir pencereye nasıl taşıyabilirim?

ekranından geliyorum , bölmeye geçebiliyorum ve sonra istediğim kişiye ulaşana kadar pencereleri değiştirebiliyorum; tmux buna izin vermiyor gibi görünüyor.

241
mrlanrat

Bunu yapmak için komut join-pane tmux 1.4'te.

join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]  
    (alias: joinp)
    Like split-window, but instead of splitting dst-pane and creating
    a new pane, split it and move src-pane into the space.  This can
    be used to reverse break-pane.

Bunu basitleştirmek için, .tmux.conf bunun için:

# pane movement
bind-key j command-Prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-Prompt -p "send pane to:"  "join-pane -t '%%'"

Birincisi bölmeyi hedef pencereden tutup akıma birleştirir, ikincisi tersini yapar.

Daha sonra, tmux oturumunuzu oturum içinden aşağıdakileri çalıştırarak yeniden yükleyebilirsiniz:

$ tmux source-file ~/.tmux.conf
221
jasonwryan

cevap bölmesi. Ben de tmux belgelerine dayalı kullanma girişimlerim ile ilgili sorunlar yaşıyordu. -t ve -s anahtarları [session]:window ve yok [session:]window. Yani oturumu belirtmek isteğe bağlıdır, ancak : zorunludur. (Tmux 1.5 kullanıyorum)

Bu nedenle, geçerli pencereye bir bölme eklemek ve pencereyi 1 bölmeye yerleştirmek için komut (Ctrl+B veya bağlama anahtarınız ne olursa olsun, ardından) ...

:join-pane -s :1

Daha sonra bunları, varsayılan olarak şu olan bölme ile bölebilirsiniz: Ctrl+B! Bir kısayola bağlamak istiyorsanız, s gibi varsayılan bir bağlayıcıyı geçersiz kılmamanızı öneririm, çünkü yolda internet üzerinden seçim oturumu içeren bir cevap arayacaksınız ve sisteminizde çalışmayacaktır. Kesme bölmesinin aşağıdakilere bağlı olduğuna dikkat edin: ! ve @ hemen yanındadır ve varsayılan olarak hiçbir şeye bağlı değildir. Bu nedenle bu bağlayıcılığı öneriyorum ...

bind-key @ command-Prompt -p "create pane from:"  "join-pane -s ':%%'"

Alternatif olarak, etkileşimli bir seçiciye sahip olmak ...

bind-key   @ choose-window 'join-pane -h -s "%%"'
bind-key [email protected] choose-window 'join-pane    -s "%%"'

Alternatif olarak, her zaman en son ziyaret edilen pencereye katılmak için ...

bind-key @ join-pane -h -s !

NOT: -h, ters olan varsayılan davranışın aksine bölmeleri yatay olarak (dikey bir bölmeyle) istiflemesine neden olur.

En önemli şey, kısayol olarak seçtiğiniz her şeyi ÖĞRENİN. Çünkü sadece ayarlayıp unutursanız, kendinizi yabancı bir sunucuda bulduğunuzda kıkırdayacaksınız. Ve bununla yüzleşelim, bir terminal çoklayıcısının sağladığı en önemli şey uzak sunucularda güvenilir oturumlardır.

Bu, GNU Ekrandan Tmux'a dönüşümümü tamamlıyor. Asla geriye bakmayacağım.

Zevk almak!

167
Bruno Bronosky

Camları kendi pencerelerine daha iyi taşımak için kullandığım şeylerden hoşlandığımı düşünüyorum. kullanırım

break-pane -t :

Deneme yoluyla anladım, ama çok iyi çalışıyor gibi görünüyor. Kolayca tuş takımı veya takma ad oluşturabilirsiniz, komut dosyası gerekmez.

45
Joshua K

Anahtar bağlama

Varsayılan olarak, Ctrl+b! would break etkin bölmeyi yeni bir pencereye ve pencereye geçirir.

Nerede Ctrl + b tmux için varsayılan önek şeklindedir.

Ayrıntılar

Bu tuşun yürüttüğü tmux komutu break-pane (takma ad: breakp) cmd-break-pane.c ve key-bindings.c öğesinde varsayılan olarak bağlı list-keys (takma ad: lsk) komut çıkışı:

bind-key    -T prefix       !                 break-pane
15
user86041

Bölme tanımlayıcısını bir Bilgi İstemi'ne yazmak istemiyorsanız,

bind-key j "join-pane -s !"

bu, son etkin bölmeyi/pencereyi geçerli pencereye birleştirir.

14
Bernhard T

Diğer cevapları inceledikten ve tmux man sayfasını inceledikten sonra şu an için aşağıdaki bağlara yerleştim:

bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'

Bu, birleştirilecek pencereyi etkileşimli olarak seçmenize olanak tanır ve yeni dikey/yatay bölünmeler oluşturmak için küçük harfli s/v bağlamaları yansıtır. Birisi pencereler yerine tek tek bölmelerin nasıl seçileceğini bilirse bana bildirin.

14
toupeira

Anahtar bağlantılarınızı değiştirmek zorunda değilsiniz.

Taşımak istediğiniz bölmenin odağı varken, Önek sonra :join-pane -t :1 Yazın; burada 1 Aynı oturumda hedef pencerenin numarası ne olursa olsun. project:3 Gibi adını ekleyerek başka bir oturuma taşıyabilirsiniz. Benim için join-pane Sekmesi-j 'dan otomatik tamamlar.

Hedefte oluşturulan yeni bölümün yönünü ayarlamak için komuta bir -h Veya -v Anahtarı ekleyin veya sadece ona gidin ve Önekspace Yeniden düzenlemek.

4
Walf