खिड़की के लिए चलती tmux फलक


228

जब मैं एकाधिक विंडो रखता हूं, और इसके विपरीत, मैं किसी मौजूदा फलक को tmux में किसी अन्य विंडो में कैसे स्थानांतरित करूं ?

मैं स्क्रीन से आ रहा हूं , जहां मैं फलक पर स्विच कर सकता हूं और तब तक विंडो स्विच कर सकता हूं जब तक कि मुझे वह नहीं मिल जाता जो मैं चाहता हूं; tmux इसे अनुमति नहीं देता है।

जवाबों:


209

ऐसा करने की आज्ञा join-panetmux 1.4 में है।

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.

इसे सरल बनाने के लिए, मेरे पास उसके लिए ये बंधन हैं .tmux.conf:

# 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 '%%'"

पहला टारगेट विंडो से पैन पकड़ता है और उसे करंट से जोड़ता है, दूसरा रिवर्स करता है।

फिर आप सत्र के भीतर से निम्नलिखित को चलाकर अपने tmux सत्र को पुनः लोड कर सकते हैं:

$ tmux source-file ~/.tmux.conf

मैं इस विधि की कोशिश कर रहा हूँ, लेकिन जब मैंने अपना कोड मेरी .tmux.conf फ़ाइल में डाला और Ctrl-b, j करूँ, तो कुछ भी होने वाला नहीं लगता।
मर्लनरत

2
आपको कम से कम 2 विंडो खोलने की आवश्यकता है, प्रत्येक में एक जोड़े के साथ: फिर हिट करें Prefix+sऔर उस विंडो को पैन भेजने के लिए प्रॉम्प्ट पर विंडो नाम दर्ज करें ...
jasonwryan

मैं अभी भी इसके साथ भाग्य नहीं कर रहा हूं, कुछ भी नहीं होता है। मुझे लगता है कि tmux .tmux.conf फ़ाइल को नहीं पढ़ रहा है क्योंकि यह Ctrl-b, j या Ctrl-b, s पर बिल्कुल भी प्रतिक्रिया नहीं देता है। (ये विन्यास फाइल में केवल 2 पंक्तियाँ हैं)
mrlanrat

7
@ श्रीमन मुझे लगता है कि आपको एक कोलोन के साथ विंडो नंबर को उपसर्ग करना होगा। मेरा जवाब नीचे देखें।
ब्रूनो ब्रोंस्की

1
'%%' किससे संबंधित है?
ऑलिगॉफ्रेन

152

join-pane इसका जवाब है। मुझे भी tmux प्रलेखन के आधार पर इसे इस्तेमाल करने के अपने प्रयासों से समस्या हो रही थी। मुझे पता चला कि -t और -s स्विच [सत्र]: विंडो को स्वीकार करते हैं और नहीं [सत्र:] विंडो को। यह कहना है कि सत्र निर्दिष्ट करना वैकल्पिक है, लेकिन इसमें शामिल होना अनिवार्य है। (मैं tmux 1.5 का उपयोग कर रहा हूँ)

इसलिए, वर्तमान विंडो में विंडो को जोड़ने और विंडो 1 को फलक में जोड़ने के लिए, कमांड होगा (Ctrl-B या जो भी आपकी बाइंड कुंजी है, उसके बाद) ...

:join-pane -s :1

फिर आप उन्हें ब्रेक-पेन के साथ एपार्ट कर सकते हैं जो डिफ़ॉल्ट रूप से है: Ctrl-B! यदि आप इसे एक शॉर्टकट से बांधना चाहते हैं, तो मैं सुझाव देता हूं कि एस की तरह एक डिफ़ॉल्ट बाइंडिंग को ओवरराइड नहीं करना चाहिए, क्योंकि सड़क पर आप एक जवाब के लिए इंटरनेट पर देखेंगे जिसमें चयन-सत्र शामिल है और यह आपके सिस्टम पर काम नहीं करेगा। ध्यान दें कि ब्रेक-पेन के लिए बाध्य है! और @ इसके ठीक बगल में है और डिफ़ॉल्ट रूप से किसी भी चीज़ के लिए बाध्य नहीं है। इस कारण से मैं इस बाध्यकारी सुझाव ...

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

वैकल्पिक रूप से, एक इंटरैक्टिव चयनकर्ता है ...

bind-key @ choose-window 'join-pane -h -s "%%"'

वैकल्पिक रूप से, हमेशा सबसे हाल ही में देखी गई विंडो में शामिल होने के लिए ...

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

नोट: -hयह क्षैतिज (ऊर्ध्वाधर विभाजन के साथ) पैन को ढेर करने का कारण बनता है क्योंकि डिफ़ॉल्ट व्यवहार का विरोध किया जाता है जो रिवर्स होता है।

सबसे महत्वपूर्ण बात यह है कि आपका LEARN जो भी आप शॉर्टकट चुनते हैं। क्योंकि यदि आप इसे बस सेट करते हैं और इसे भूल जाते हैं, तो जब आप अपने आप को एक विदेशी सर्वर पर पाते हैं तो आप प्रभावित हो जाएंगे। और चलो इसका सामना करते हैं, सबसे महत्वपूर्ण बात जो एक टर्मिनल मल्टीप्लेयर आपको देता है वह दूरस्थ सर्वरों पर विश्वसनीय सत्र है।

यह GNU स्क्रीन से Tmux में मेरा रूपांतरण पूरा करता है। मैं कभी पीछे मुड़कर नहीं देखूंगा।

का आनंद लें!


2
मैं ':' को भी याद कर रहा हूं ... इसके लिए धन्यवाद।
रैसलिंग

मुझे हाल ही में इस पर 2 डाउन वोट मिले, जिसमें कोई टिप्पणी नहीं दी गई कि क्यों। यह सिर्फ असभ्य और विरोधी FOSS संस्कृति है।
ब्रूनो ब्रोंस्की

1
प्रलेखन कॉलन के बारे में बिल्कुल भी बात नहीं करता है! अच्छा एक
जॉनी राना

1
डॉट सिंटैक्स का उपयोग करने से मुझे window.paneउदाहरण के join-pane -s 1.0लिए वर्तमान विंडो में विंडो 1 में फलक 0 स्थानांतरित करने में मदद मिली । Maciej.lasyk.info/2014/Nov/19/tmux-join-pane
mbigras

2.1 tmux के रूप में, :जाहिरा तौर पर अब (जैसे, बस करना :join-pane -s 1) की आवश्यकता नहीं है । हो सकता है कि पूर्व संस्करणों में एक बग था
खलनायक

38

मुझे लगता है कि मुझे पसंद है कि मैं पैन का उपयोग करने के लिए अपनी खिड़की के लिए बेहतर उपयोग कर रहा हूं। मैं उपयोग करता हूं

break-pane -t :

मैंने इसे प्रयोग के माध्यम से समझ लिया, लेकिन यह बहुत अच्छी तरह से काम करता है। आप इसे आसानी से कीबाइंड या उर्फ ​​कर सकते हैं, कोई स्क्रिप्टिंग की आवश्यकता नहीं है।


2
+1। मैं इससे बहुत अधिक बार उपयोग करता हूं join-pane
क्रिस बी

14

यदि आप फलक पहचानकर्ता को संकेत में लिखना नहीं चाहते हैं, तो आप भी उपयोग कर सकते हैं

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

जो वर्तमान विंडो में अंतिम सक्रिय फलक / विंडो से जुड़ जाएगा।


1
आपके द्वारा कौन सा संस्करण उपयोग किया जा रहा है? मैं unknown command: join-pane -s !1.6 के साथ हो रहा हूँ ।
पैराडायरायड

यहाँ 2.0 का उपयोग, लेकिन सिर्फ उद्धरण के बिना लाइन में डालकर ठीक काम करने लगता है। bind-key j join-pane -s !
bkzland

13

अन्य उत्तरों को देखने और tmux man पेज को देखने के बाद मैंने अभी के लिए निम्नलिखित बाइंडिंग पर समझौता किया है:

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

यह आपको अंतःक्रियात्मक रूप से शामिल होने के लिए विंडो का चयन करने देगा, और नए ऊर्ध्वाधर / क्षैतिज विभाजन बनाने के लिए मेरे लोअरकेस s/ vबाइंडिंग को दर्पण करेगा । अगर किसी को पता है कि खिड़कियों के बजाय व्यक्तिगत पैन का चयन कैसे करें तो मुझे बताएं।


यह बहुत मददगार है। धन्यवाद। दुर्भाग्य से -vऔर -hक्रमशः ऊर्ध्वाधर और क्षैतिज "विभाजन" निर्माण नहीं करतीं। वे क्रमशः ऊर्ध्वाधर और क्षैतिज " स्टैक्ड पैन " बनाते हैं। (यह कहना है कि खड़ी स्टैक पैन में एक क्षैतिज विभाजन है।) तो आपको अपने मस्तिष्क को इस तरह से प्रशिक्षित करना होगा। यह भी -vडिफ़ॉल्ट है, इसलिए मैं इसे छोड़ देता हूं और केवल -hवहीं डाल देता हूं ताकि आपकी ~/.tmux.confचेट शीट के रूप में आपके देखने के काम आए ।
ब्रूनो ब्रोंस्की

मुझे "ब्रेक-पेन के विपरीत" के अन्य उत्तरों की तुलना में यह बेहतर लगता है। अस्थायी रूप से अपने स्वयं के विंडो में एक फलक मुक्त होने के बाद, बाद में मैं इसे पुरानी खिड़कियों में से एक में वापस भेजना चाहता हूं और यह उस इनायत को संभालता है।
अस्तबलोग

13

कुंजी बंधन

डिफ़ॉल्ट रूप से, Ctrl+ b, !होगा तोड़ एक नई विंडो में सक्रिय फलक और यह करने के लिए स्विच।

जहाँ Ctrl+ लिए bडिफ़ॉल्ट उपसर्ग है ।

विवरण

tmuxआदेश इस कुंजी निष्पादित होता है break-pane(उर्फ: breakp) में लागू किया cmd-break-pane.cऔर में डिफ़ॉल्ट के रूप में बाध्य कुंजी bindings.c के रूप में देखा list-keys(उर्फ: lsk) आदेश उत्पादन:

bind-key    -T prefix       !                 break-pane

4

आपको अपने प्रमुख बाइंडिंग को बदलने की आवश्यकता नहीं है।

जबकि फलक आप स्थानांतरित करना चाहते ध्यान केंद्रित किया, प्रकार उपसर्ग तो :join-pane -t :1जहां 1जो कुछ भी गंतव्य विंडो के नंबर एक ही सत्र में है। आप इसके नाम को पसंद करके इसे दूसरे सत्र में ले जा सकते हैं project:3। मेरे लिए से join-paneटैब-ऑटोकम्प्लीट्स j

गंतव्य में बनाए गए नए विभाजन के उन्मुखीकरण को सेट करने के लिए एक कमांड जोड़ें -hया -vस्विच करें, या बस इसे और प्रीफ़िक्स + spaceको फिर से व्यवस्थित करने के लिए जाएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.