Tmux- এ একটি ফলকে "সর্বোচ্চকরণ"


238

কখনও কখনও tmux এ একটি ফলক সর্বাধিক করে তোলা এবং তারপরে এটি আগের আকারে পুনরুদ্ধার করা খুব দরকারী very

আমি ম্যানুয়ালটি পড়েছি এবং আমি কোনও উপায় খুঁজে পাচ্ছি না। আমি যেটি সামনে এসেছি তা হ'ল আমি ফলকে "সর্বাধিক" প্রস্থের আকার পরিবর্তন করতে একটি কী এবং কিছু পূর্বনির্ধারিত প্রস্থে এটি পুনরুদ্ধার করার জন্য একটি কী বাঁধতে পারি।

অবশ্যই এটির ত্রুটিগুলি রয়েছে, তাই আমি ভাবছি যে কারওর থেকে ভাল ধারণা আছে কিনা।

উত্তর:


54

tmux 1.8 এবং তারপরে

নীচের উত্তর থেকে এখন স্থানীয়ভাবে সমর্থিত :

সংস্করণ 1.8 পুনরায় আকার-ফলকটিতে -Z পতাকাটি যুক্ত করেছে। ম্যান পৃষ্ঠা থেকে:

-জেড সহ, সক্রিয় পেনটি জুমড (উইন্ডোর পুরো অংশটি দখল করে) এবং আনজুমড (লেআউটে এটির স্বাভাবিক অবস্থান) এর মধ্যে টগল করা হয়।

পুরানো tmux (মূল উত্তর)

অন্য একটি বিকল্প break-paneঅনুসরণ করে ব্যবহার করা যেতে পারে join-pane। থেকে man পৃষ্ঠা :

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- এটিকে আবার জায়গায় রাখতে কিছু ডিফল্ট যুক্তিগুলির প্রয়োজন হতে পারে বা কেবল পরে পুনরায় সাজানো যেতে পারে।

নোট করুন যে জোড়-ফলকটি টিএমউক্স ১.৩ এ প্রদর্শিত হবে তবে ১.১ নয়। (1.2 সম্পর্কে নিশ্চিত নয়, দুঃখিত)।

এবং কেবলমাত্র উল্লেখ করতে পারি যে টার্মিনেটর (একটি জিইউআই (জিটিকে ভিত্তিক) টার্মিনাল মাল্টিপ্লেক্সার) জুম জিনিস করতে পারে। (সিআরটিএল-শিফট-এক্স হ'ল ডিফল্ট কী-বাইন্ডিং)। অবশ্যই এটি tmux যে প্রচুর কাজ করে না ...


32
সংস্করণ 1.8 হিসাবে আরও ভাল সমাধান আছে (টাইলার হলিয়ানের উত্তর দেখুন)।
মোমারা

1
তাদের জন্য যারা আরও ভাল উত্তরের আগে এটি চেষ্টা করে কাজ করার জন্য জোড়-ফলক পেতে: join-pane -t:{previous}আগের উইন্ডোটির জন্য বা join-pane -t:0এটি উইন্ডোতে ফিরে আসতে পারেন 0
বাস্তবসম্মত

487

এটি এখন একটি নেটিভ tmux বৈশিষ্ট্য।

সংস্করণ 1.8 এ -Zপতাকাটি যুক্ত করা দেখেছি resize-pane। ম্যান পৃষ্ঠা থেকে:

-জেড সহ, সক্রিয় পেনটি জুমড (উইন্ডোর পুরো অংশটি দখল করে) এবং আনজুমড (লেআউটে এটির স্বাভাবিক অবস্থান) এর মধ্যে টগল করা হয়।

এটি আবশ্যক tmux-prefix- zআমার ইনস্টলেশন ডিফল্টরূপে (ওএস এক্সের হোমব্রুয়ের মাধ্যমে)।


4
এটি দুর্দান্ত ছিল, কেবল আমার .tmux.conf এ যুক্ত হয়েছে এবং এখন আরও অনেক তরল অভিজ্ঞতা রয়েছে: বাইন্ড-কী z রিসাইজ-পেন-জেড
সেন্ট-স্টি-স্টি-স্টিফেন

গভীরতার ইঙ্গিতের জন্য নিমজ্জিত তলের প্রান্তগুলি কি কোনওভাবে দেখা সম্ভব? আমি ভুলে যেতে থাকি যে আমি জুম করছি এবং "জেড-শিরোনাম" সত্যই যথেষ্ট বিশিষ্ট নয়।
lkraav

বক্সের বাইরে বুনসেনল্যাবসে কাজ করে।
ম্যাটিউজ পিয়োট্রোস্কি

অসাধারণ. এটি আসলে কাজ করে
সাইম সিয়াম


49

সুতরাং আমি জানি আপনি কিছুক্ষণ আগে এটি জিজ্ঞাসা করেছিলেন ... তবে আমি আজ অবধি পর্দা থেকে স্যুইচ করিনি!

আমি একই সমস্যার মধ্যে দৌড়েছি, এখানে আমি কীভাবে এটি সমাধান করেছি:

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

যদি আপনার ওয়ার্কফ্লোটি আমার মতো হয় (যেমন আপনি একটি উইন্ডো সর্বাধিক করেন, কিছু কাজ করেন তবে তাৎক্ষণিকভাবে এটি আনস্যাক্সিমাইজ করুন) এটি আপনার পক্ষে দুর্দান্ত কাজ করা উচিত।


(যদি এটি পরিষ্কার না হয় তবে এটি আপনার আসল উইন্ডোতে লেআউটটি বজায় রাখে ... সর্বাধিক করার পরে এবং সর্বাধিক করার পরে, এটি ঠিক একই।)
রায়ান

2
আমি কী কীভাবে উভয়কে একই কীস্ট্রোক মানচিত্র করতে পারি? কিছু একটা bind c-m select-window -t tmux-zoom ? <minimize> : <maximize>। তবে এখন আমি পরিষ্কার-পরিচ্ছন্নতার জন্য এবং ন্যায্যতার জন্য এই ফাংশনটি অন্য কোথাও সংজ্ঞায়িত করতে চাই bind c-m :max_or_min। এটা কি সম্ভব? আমি এটি অনুসন্ধান করা কঠিন খুঁজে পাচ্ছি। (আমি দেখতে পাই যে আমি প্রায়শই ভুল কমান্ডটি আঘাত করি এবং অতিরিক্ত, খালি 'tmux-zoom' উইন্ডোজ তৈরি করি))
চাদো

7
এটি তখনই আমার পক্ষে কাজ করেছিল যখন আমি সর্বাধিক থেকে 'ক্লিয়ার অ্যান্ড অ্যান্ড টো টিএমউक्स জুম ও অ্যান্ড রিড' সরিয়ে ফেলি।
এপেলি

আমার জন্য কাজটি সর্বাধিক কাজ করে তবে ছোট পদক্ষেপটি কেবলমাত্র মূল উইন্ডোটি সরিয়ে দেয়, সর্বাধিক ফলকটি রেখে।
প্যারাড্রয়েড

এই ধরণের কাজ করেছে, তবে আমি আমার লেআউটটি হারিয়েছি .. যদিও প্রায়!
জন হান্ট

25

উন্নত জুমার। এখন কেউ একাধিক পেনগুলি এমনকি জেনারোরিকভাবেও জুম করতে পারে। নীচেটি করার পরে এবং আপনার tmux সার্ভারটি পুনরায় লোড করার পরে (আমার ক্ষেত্রে Ctrl-r) আপনার xকীটি জুম ইন করতে এবং একটি ফলকে জুম আউট করতে হবে । একটি নতুন উইন্ডোতে ফলকটি খোলার মাধ্যমে জুম-ইন অর্জন করা হয় এবং জুম-আউটটি তার মূল উইন্ডোতে ফিরে এসে একটি ফলকটি নিয়ে যায়। আপনি যদি জুম-ইন উইন্ডোটি বিভক্ত করে শেষ করেন তবে আপনি জুম-ইন উইন্ডোটির প্যানে জুম-ইন করতে সক্ষম হবেন এবং জুম-ইন উইন্ডোতে ফিরে জুম-আউট করতে পারবেন। জুম-আউট কেবল তখনই ঘটে যখন আপনি একটি একক ফলকযুক্ত একটি জুম-ইন উইন্ডোতে রয়েছেন।

আপনার শেষে অনুসরণ করুন ~/.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

4
শুধুমাত্র একটি একক উপায়ে ?! এই উত্তর দুর্দান্ত! খুব ভাল কাজ করে, দুর্দান্ত নতুন কার্যকারিতা প্রবর্তন করে যা এখন আমি ব্যবহৃত ব্লাটিটি 'টার্মিনেটর' প্রোগ্রামটিকে পুরোপুরি প্রতিস্থাপন করে।
বোকা মুনকি

+1 এটি সত্যিই ভাল! এতদূর সেরা কাজের সমাধানটি আমি এ পর্যন্ত এসেছি! ধন্যবাদ !!
আরমান্ডিনো

আমি একমত. এটি কাজ করে, এবং দুর্দান্ত থেকেও বেশি is এটির স্ক্রিন ++
ব্র্যাড পার্কগুলি

+1 টি। এটি দুর্দান্ত কাজ করে তবে কমপক্ষে আমার সিস্টেমে উপরের রায়ের উত্তরের চেয়ে ধীরে ধীরে এটি একটি সেকেন্ডের (~ 0.8s) ধীরে ধীরে। বড় কথা নয়, তবে আমি আরও আশ্চর্য হই যে এটিকে আরও দ্রুত করার কোনও উপায় আছে কিনা
আমেলিও ওয়াজকেজ-রেইনা

সত্যিই সুন্দর। আমি বিশেষ ফলকের নামগুলি (জুম @…) পছন্দ করি যা দরকারী অনুস্মারক এবং একক "এক্স" জুম ইন / আউট কমান্ড।
এরিক হে লেবিগোট

16

Ctrl+ b(উপসর্গ) + zএকটি নির্দিষ্ট ফলকে জুম করার জন্য কাজ করে tmux 2.1। এটা আপনি টিপুন Ctrl+ + b+ + zআবার, এটি ফিরিয়ে মূল আকার ফলক জুম করুন। এটি একটি নতুন ফলক তৈরি করে না।

আকসেস দ্বারা উপরে পোস্ট করা সমাধানের সাথে তুলনা করে, আপনি যদি জুম-ইন ফলকে বিভক্ত করার চেষ্টা করেন তবে এটি বিভক্ত হতে দেবে না এবং মূল ফলকে ফিরে যাবে এবং পরিবর্তে সেই ফলকে বিভক্ত করবে।

জুম উইন্ডো বিকল্পটি সম্ভবত আরও বহুমুখী ...


2

আমি একই কীস্ট্রোকটি দিয়ে সর্বাধিক / ছোট করার জন্য এটি করেছি:

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"

1

এছাড়াও আমার জন্য 'পরিষ্কার && এর প্রতিধ্বনি TMUX ZOOM && পড়া' ছাড়াই কাজ করুন। এই স্নিপেটের সাথে প্রতিবার আমি প্রথম উইন্ডো থেকে একটি পেনটি অদৃশ্য হয়ে যাব।


1

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

এখন, এর জন্য একটি ডিফল্ট শর্টকাট রয়েছে:

tmux-prefix+ +z

যা সাধারণত:

Ctrlb+ +z



0

আমি উবুন্টু 12.04 এ আছি এবং এই বৈশিষ্ট্যটিরও দরকার ছিল। Tmux 1.8 যেহেতু tmux-prefix z ব্যবহার করে জুম টগলিংয়ের জন্য স্থানীয় সমর্থন রয়েছে। যেহেতু আমরা সম্ভবত ১২.০৪ তে tmux 1.8 দেখতে পাব না আমি অন্য দেব কম্পিউটারের উত্স থেকে tmux 1.8 সংকলন করেছি, এর নামটি _tmux-1.8 এ রেখেছি এবং কেবল 1.8 বাইনারিটি /usr/bin/_tmux-1.8 এ অনুলিপি করে এবং। tmux = _ tmux-1.8 '।

এই দ্রুত এবং নোংরা পদ্ধতিটি ব্যবহার করে আমি কোনও সমস্যা লক্ষ্য করিনি এবং যখন / যদি tmux 1.8 12.04 এ আসে তবে আমি কিছুই ভাঙ্গি নি।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.