सवाल Tmux में एक फलक "अधिकतम"


कभी-कभी यह tmux में एक फलक को अधिकतम करने के लिए बहुत उपयोगी होगा और फिर इसे अपने पिछले आकार में पुनर्स्थापित करें।

मैं मैनुअल पढ़ रहा हूं और मुझे कोई रास्ता नहीं मिल रहा है। मैं जो आया हूं वह यह है कि मैं फलक को "अधिकतम" चौड़ाई में बदलने के लिए कुंजी और कुछ पूर्वनिर्धारित चौड़ाई में इसे पुनर्स्थापित करने के लिए एक और कुंजी बांध सकता हूं।

बेशक इसमें इसकी कमी है, इसलिए मैं सोच रहा हूं कि किसी के पास बेहतर विचार है या नहीं।


199
2018-01-27 23:10


मूल




जवाब:


एक और विकल्प का उपयोग किया जा सकता है break-pane के बाद join-pane। वहाँ से मैन पेज:

break-pane [-d] [-t target-pane]
                   (alias: breakp)
             Break target-pane off from its containing window to make it the
             only pane in a new window.  If -d is given, the new window does
             not become the current window.

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.

तो आप अपने फलक का चयन कर सकते हैं और करते हैं break-pane और फिर एक बार जब आप अधिकतम संस्करण के साथ किया, तो आप इसे फिर से जोड़ सकते हैं join-pane - इसे वापस स्थानांतरित करने के लिए कुछ डिफ़ॉल्ट तर्कों की आवश्यकता हो सकती है, या फिर बाद में पुनर्व्यवस्थित करें।

ध्यान दें कि जॉइन-फलक tmux 1.3 में प्रतीत होता है लेकिन 1.1 नहीं। (1.2 के बारे में निश्चित नहीं, क्षमा करें)।

और बस इसका उल्लेख करने के लिए टर्मिनेटर (एक जीयूआई (जीटीके आधारित) टर्मिनल मल्टीप्लेक्सर) ज़ूम चीज कर सकता है। (Ctrl-Shift-X डिफ़ॉल्ट कीबाइंडिंग है)। बेशक यह बहुत सी चीजें नहीं करता है जो tmux करता है ...


49
2018-05-03 22:50



संस्करण 1.8 के अनुसार एक बेहतर समाधान है (टायलर होलीन का जवाब देखें)। - momeara
उन लोगों के लिए जो बेहतर जवाब से पहले इसे करने के लिए प्रयास करते हैं, काम करने के लिए फलक पाने के लिए: join-pane -t:{previous} पिछली खिड़की के लिए या join-pane -t:0 इसे वापस विंडो 0 में शामिल करने के लिए। - Realistic


यह अब एक मूल tmux सुविधा है।

संस्करण 1.8 में जोड़ा गया -Z झंडा resize-pane। आदमी पृष्ठ से:

-Z के साथ, सक्रिय फलक ज़ूम किए गए (कब्जा कर रहा है) के बीच टॉगल किया गया है   पूरी खिड़की) और अनजान (लेआउट में इसकी सामान्य स्थिति)।

यह बाध्य है tmux-उपसर्ग-z डिफ़ॉल्ट रूप से मेरी स्थापना पर (ओएस एक्स पर होमब्रू के माध्यम से)।


423
2018-04-01 18:49



यह बहुत अच्छा था, बस मेरे .tmux.conf में जोड़ा गया और अब एक बहुत अधिक तरल अनुभव है: बाइंड-की जेड resize-pane -Z - St-Ste-Ste-Stephen
क्या किसी भी तरह से गहराई संकेत के लिए दृश्यमान डूबे हुए किनारों के किनारों को संभव है? मैं भूल रहा हूं कि मैं ज़ूम इन हूं और "ज़ेड-शीर्षक" वास्तव में काफी महत्वपूर्ण नहीं है। - lkraav
बॉक्स से बाहर BunsenLabs में काम करता है। - Mateusz Piotrowski


तो मुझे पता है कि आपने कुछ समय पहले यह पूछा था ... लेकिन मैंने आज तक स्क्रीन से स्विच नहीं किया!

मैं एक ही समस्या में भाग गया, यहां मैंने इसे हल किया है:

unbind +
bind + new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom

यदि आपका वर्कफ़्लो मेरा जैसा है (यानी आप खिड़की को अधिकतम करते हैं, कुछ काम करते हैं, तो तुरंत इसे अनैक्सिमाइज़ करें) यह आपके लिए बहुत अच्छा काम करना चाहिए।


47
2017-11-15 20:21



(यदि यह स्पष्ट नहीं था, तो यह आपकी मूल विंडो में लेआउट को बनाए रखता है ... अधिकतम करने और अधिकतम करने के बाद, यह बिल्कुल वही है।) - Ryan
कोई विचार है कि मैं दोनों को एक ही कीस्ट्रोक कैसे मैप कर सकता हूं? कुछ इस तरह bind c-m select-window -t tmux-zoom ? <minimize> : <maximize>। लेकिन अब मैं स्वच्छता के लिए, और बस इस समारोह को कहीं और परिभाषित करना चाहता हूं bind c-m :max_or_min। क्या यह संभव है? मुझे खोजना मुश्किल लगता है। (मुझे लगता है कि मैं अक्सर गलत कमांड दबाता हूं और अतिरिक्त, खाली 'tmux-zoom' विंडो बना देता हूं।) - chadoh
यह केवल मेरे लिए काम करता था जब मैंने अधिकतम से हटाकर 'साफ़ करें और टीएमयूएक्स ज़ूम && पढ़ा' हटा दिया। - Epeli
Thw मेरे लिए अधिकतम काम करता है, लेकिन न्यूनतम कार्य केवल मूल विंडो को मारता है, जिससे अधिकतम फलक छोड़ दिया जाता है। - paradroid
इस प्रकार का काम किया, लेकिन मैं अपना लेआउट खो देता हूं .. लगभग यद्यपि! - John Hunt


बेहतर ज़ूमर अब कोई भी पदानुक्रमित रूप से कई पैन ज़ूम कर सकता है। नीचे दिए जाने और अपने tmux सर्वर को पुनः लोड करने के बाद (मेरे मामले में Ctrl-r) आपके पास होगा एक्स ज़ूम इन करने और एक फलक ज़ूम करने के लिए कुंजी बाध्य है। ज़ूम-इन को नई विंडो में फलक खोलकर हासिल किया जाता है, और ज़ूम-आउट को अपनी मूल विंडो में वापस खींचकर हासिल किया जाता है। यदि आप ज़ूम-इन विंडो को विभाजित करते हैं, तो आप ज़ूम-इन विंडो के पैन में ज़ूम करने और ज़ूम-इन विंडो पर ज़ूम-आउट करने में सक्षम होंगे। ज़ूम-आउट केवल तब होता है जब आप एक ज़ूम-इन विंडो में होते हैं जिसमें एकल फलक होता है।

अपने अंत में निम्नलिखित जोड़ें ~/.tmux.conf

~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"

निम्नलिखित फ़ाइल जोड़ें

~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
    inzoom="";
fi
if [ $inzoom ]; then
    lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
    lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
    tmux select-window -t $lastwindow;
    tmux select-pane -t $lastpane;
    tmux swap-pane -s $currentwindow;
    tmux kill-window -t $currentwindow;
else
    newwindowname=zoom@$currentwindow@$currentpane;
    tmux new-window -d -n $newwindowname;
    tmux swap-pane -s $newwindowname;
    tmux select-window -t $newwindowname;
fi

24
2018-06-07 06:03



केवल एक ही अपवर्त ?! यह जवाब कमाल है! बहुत अच्छी तरह से काम करता है, अच्छी नई कार्यक्षमता पेश करता है जो अब उपयोग करने के लिए उपयोग किए जाने वाले ब्लॉटी 'टर्मिनेटर' प्रोग्राम को पूरी तरह से बदल देता है। - sillyMunky
+1 यह वास्तव में अच्छा है! अब तक का सबसे अच्छा कामकाजी समाधान अब तक आया है! धन्यवाद!! - armandino
मैं सहमत हूँ। यह काम करता है, और भयानक से अधिक है। यह स्क्रीन ++ है - Brad Parks
+1। यह बहुत अच्छा काम करता है लेकिन यह कम से कम मेरे सिस्टम पर @ रयान के उत्तर से धीमे एक दूसरे (~ 0.8s) का अंश है। कोई बड़ा सौदा नहीं है, लेकिन मुझे आश्चर्य है कि इसे तेज बनाने का कोई तरीका है या नहीं - Amelio Vazquez-Reina
सुंदर वास्तव में। मुझे विशेष फलक नाम पसंद हैं (ज़ूम @ ...), जो उपयोगी अनुस्मारक हैं, और एकल "एक्स" ज़ूम इन / आउट कमांड। - Eric Lebigot


Cntl + b (उपसर्ग) + z tmux 2.1 में किसी विशेष फलक में ज़ूम करने के लिए काम करता है। यह आप फिर से Cntrl + b + z दबाते हैं, यह ज़ूम फलक को मूल आकार में वापस ले जाता है। यह एक नया फलक नहीं बनाता है।

एक्से द्वारा ऊपर दिए गए समाधान की तुलना में, यदि आप ज़ूम किए गए फलक को विभाजित करने का प्रयास करते हैं, तो यह विभाजित करने की अनुमति नहीं देगा, और मूल फलक पर वापस जायेगा और इसके बजाय उस फलक को विभाजित करेगा।

ज़ूम विंडो विकल्प शायद अधिक बहुमुखी है ..


7
2017-09-01 13:46





मैंने इसे एक ही कीस्ट्रोक के साथ अधिकतम / छोटा करने के लिए किया था:

bind C-k run "if [[ $(tmux list-window) =~ ZOOM ]]; then tmux last-window; tmux swap-pane -s ZOOM.1; tmux kill-window -t ZOOM; else tmux new-window -d -n ZOOM; tmux swap-pane -s ZOOM.1; tmux select-window -t ZOOM;fi"

2
2018-05-07 21:32





इसके अलावा मेरे बिना 'स्पष्ट और echo TMUX ZOOM && read' के बिना काम करें। इस स्निपेट के साथ हर बार जब मैं पहली खिड़की से एक फलक को कम करता हूं गायब हो जाता है।


1
2018-04-20 12:21





के साथ समस्या resize-pane -Z एक टॉगल होने का कारण यह है कि कभी-कभी यह वांछित की तुलना में रिवर्स ज़ूम ऑपरेशन करेगा, खासकर जब किसी स्क्रिप्ट या अंदर से कहा जाता है tmux.conf

यहां कार्य-आसपास है:

tmux-zoom-in.sh

#!/bin/bash

# Zoom in the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8

tmux list-panes -F '#F' | grep -q Z || tmux resize-pane -Z

tmux-zoom-out.sh

#!/bin/bash

# Zoom out the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8

tmux list-panes -F '#F' | grep -q Z && tmux resize-pane -Z

1
2017-08-05 03:08





उन लोगों के लिए जो tmux 1.8 के साथ नहीं जा सकते हैं या लंबे समय तक अधिकतम राज्य पसंद नहीं करते हैं, मैंने एक प्रकाशित किया tmux स्क्रिप्ट जो tmux 1.6+ के साथ काम करता है

उम्मीद है की वो मदद करदे।


0
2018-05-05 21:53





मैं उबंटू 12.04 पर हूं और इस सुविधा की भी आवश्यकता है। चूंकि tmux 1.8 tmux-prefix z का उपयोग करके ज़ूम टॉगलिंग के लिए मूल समर्थन है। चूंकि हम शायद 12.04 में tmux 1.8 नहीं देख पाएंगे, मैंने अन्य देव कंप्यूटर पर स्रोत से tmux 1.8 संकलित किया है, इसे _tmux-1.8 में बदल दिया है और बस 1.8 बाइनरी को /usr/bin/_tmux-1.8 में कॉपी किया है और संपादित किया है। Bash_aliases -> उपनाम tmux = '_ tmux-1.8'।

मैंने इस त्वरित और गंदे विधि का उपयोग करके कोई समस्या नहीं देखी है और जब / tmux 1.8 12.04 पर आता है तो मैंने कुछ भी नहीं तोड़ा है।


0
2018-06-02 12:53