سؤال "تعظيم" جزء في 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 ، آسف).

ومجرد ذكر ذلك فاصل (يمكن لموجه محطة طرفية في واجهة المستخدم الرسومية (GTK) القيام بأشياء التكبير / التصغير. (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 بادئة-ض بشكل افتراضي على التثبيت الخاص بي (عبر Homebrew على OS X).


423
2018-04-01 18:49



كان هذا رائعًا ، وتمت إضافته للتو إلى ملفي .tmux.conf والآن أصبح لدي تجربة أكثر مرونة: مفتاح إعادة ضبط جزء z - St-Ste-Ste-Stephen
هل من الممكن أن تكون حواف الأجزاء المغمورة مرئية لبيان العمق؟ وأبقى متغيبًا وأنا مضطر إلى التكبير ، ولا يكون "Z-title" بارزًا بدرجة كافية. - 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
لقد نجحت في ذلك فقط عندما أزلت 'clear && echo TMUX ZOOM && read' from maximize. - Epeli
Thw تعظيم الأعمال بالنسبة لي ، ولكن تقليل التصرف يقتل فقط النافذة الأصلية ، تاركا الجزء الأكبر. - paradroid
هذا النوع من العمل ، ولكن أفقد تخطيط بلدي .. على الرغم تقريبا! - John Hunt


تكبير محسن. الآن يمكن للمرء أن تكبير أجزاء متعددة ، حتى هرمية. بعد القيام أدناه وإعادة تحميل خادم tmux (تحكم في الحالة الخاصة بي) سوف يكون لديك س مفتاح ربط لتكبير وتصغير جزء. يتحقق التكبير في جزء فتح في نافذة جديدة ، ويتم تحقيق التصغير عن طريق إعادة جزء إلى نافذته الأصلية. إذا انتهى بك الأمر إلى تقسيم نافذة التكبير ، ستتمكن من تكبير أجزاء إطار التكبير والتصغير مرة أخرى إلى نافذة التكبير. يحدث التصغير فقط إذا كنت في إطار تكبير / تصغير يحتوي على جزء واحد.

اضف الى نهاية الخاص بك ~/.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



فقط واحد upvote؟! هذا الجواب رائع! يعمل بشكل جيد للغاية ، ويقدم وظائف جديدة لطيفة والتي تحل الآن محل برنامج "المنهي" bloaty الذي اعتدت استخدامه. - sillyMunky
+1 هذا جيد حقا! إلى حد بعيد أفضل حل عملي جئت عبره حتى الآن! شكر!! - armandino
أنا اتفق. هذا يعمل ، وأكثر من رائع. انها شاشة ++ - Brad Parks
+1. هذا يعمل بشكل رائع ولكنه جزء من ثانية (~ 0.8s) أبطأ من إجابة @ Ryan أعلاه ، على الأقل على النظام الخاص بي. ليست صفقة كبيرة ، لكنني أتساءل عما إذا كانت هناك طريقة لجعلها أسرع - Amelio Vazquez-Reina
جميلة بالفعل. أنا أحب أسماء جزء خاص (التكبير @ ...) ، والتي هي تذكير مفيدة ، وأمر التكبير / التصغير واحد "x" في / خارج. - Eric Lebigot


يعمل Cntl + b (prefix) + z على التكبير في جزء معين في tmux 2.1. قمت بضغط Cntrl + b + z مرة أخرى ، فإنه جزء التكبير مرة أخرى إلى الحجم الأصلي. لا يقوم بإنشاء جزء جديد.

بالمقارنة مع الحل المنشور أعلاه بواسطة aksay ، إذا حاولت تقسيم الجزء الذي تم تكبيره ، فلن يسمح بتقسيمه ، وسيعود إلى الجزء الأصلي ويقسم ذلك الجزء بدلاً من ذلك.

خيار نافذة التكبير هو على الأرجح أكثر تنوعا ..


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





أيضا بالنسبة لي العمل دون 'واضح && صدى TMUX ZOOM && قراءة'. مع هذا المقتطف كلما اختفت تصغير جزء واحد من النافذة الأولى.


1
2018-04-20 12:21