ছোট মনিটরের থেকে বড়টিতে স্যুইচ করার সময় tmux উইন্ডোটি আবার কীভাবে আঁকতে পারে?


399

ধরা যাক আপনি টার্মিনাল.এপ এর মাধ্যমে এসএমএসের মাধ্যমে একটি রিমোট সার্ভারের সাথে সংযোগ করছেন। আপনি যখন tmux শুরু করেছিলেন ছোট থেকে বড় রেজোলিউশন মনিটরের সাথে "tmux সংযুক্ত" করেন, তখন এটি কনসোলের চারপাশে বিন্দুগুলি আঁকবে। এটি নতুন উইন্ডোর আকারের সাথে খাপ খায় না। উইন্ডোটি পুনরায় আঁকা এবং পরিষ্কার করার কোনও উপায় আছে? CTRL+ Lবা CTRL- B+ Rসাহায্য করে না। আমি মানুষের কোনও সঠিক আদেশ পাইনি।

% tmux -V
tmux 1.5

7
আমি জানতে চাই যে কীভাবে কোনও সেশনকে আলাদা না করে সমস্ত সেশন পুনরায় আঁকতে হয়।
পিজে ব্রুনেট

3
প্রত্যেকে আলাদা করে ফেলেছে ... আপনি কি কোনও উপায় খুঁজে পেয়েছেন?
পটোশি パ ト シ

দ্রুত রেফারেন্সের জন্য: learnbatta.com/blog/tmux-working-with-split-terminal-95
anjaneyulubatta505

হ্যাঁ, আমি এখনও প্রশ্নের উত্তরটি জানতে আগ্রহী: "উইন্ডোটি পুনরায় আঁকা এবং পরিষ্কার করার কোনও উপায় আছে?"
জায়েদেল

উত্তর:


579

tmux উইন্ডোটি সংযুক্ত সমস্ত সেশন জুড়ে প্রতিটি মাত্রার ক্ষুদ্রতম পর্যন্ত একটি উইন্ডোর মাত্রা সীমাবদ্ধ করে। এটি যদি এটি না করে তবে সমস্ত সংযুক্ত ক্লায়েন্টের জন্য পুরো উইন্ডো অঞ্চলটি প্রদর্শনের কোনও বুদ্ধিমান উপায় নেই।

সবচেয়ে সহজ কাজটি যখন আপনি সংযুক্ত করেন তখন সেশনগুলি থেকে অন্য কোনও ক্লায়েন্টকে আলাদা করা:

tmux attach -d

পর্যায়ক্রমে, আপনি অধিবেশন সংযুক্ত করার আগে অন্য যে কোনও ক্লায়েন্টকে আলাদা সেশনে নিয়ে যেতে পারেন:

takeover() {
    # create a temporary session that displays the "how to go back" message
    tmp='takeover temp session'
    if ! tmux has-session -t "$tmp"; then
        tmux new-session -d -s "$tmp"
        tmux set-option -t "$tmp" set-remain-on-exit on
        tmux new-window -kt "$tmp":0 \
            'echo "Use Prefix + L (i.e. ^B L) to return to session."'
    fi

    # switch any clients attached to the target session to the temp session
    session="$1"
    for client in $(tmux list-clients -t "$session" | cut -f 1 -d :); do
        tmux switch-client -c "$client" -t "$tmp"
    done

    # attach to the target session
    tmux attach -t "$session"
}
takeover 'original session' # or the session number if you do not name sessions

কোনও ছোট ক্লায়েন্ট সেশনে স্যুইচ করলে স্ক্রিনটি আবার সঙ্কুচিত হবে।

একটি ভিন্নতা রয়েছে যেখানে আপনি উইন্ডোটি কেবল "দখল" করবেন (উইন্ডোটিকে একটি নতুন সেশনের সাথে সংযুক্ত করুন, সেট করুন aggressive-resizeএবং সেই উইন্ডোটি অন্য কোনও উইন্ডোতে সক্রিয় রয়েছে এমন কোনও সেশন স্যুইচ করুন), তবে সাধারণভাবে স্ক্রিপ্ট করা শক্ত হয় is কেস (এবং "প্রস্থান" থেকে আলাদা কারণ আপনি উইন্ডোটিকে লিঙ্কযুক্ত করতে চান বা সেশনটি সরিয়ে রাখার পরিবর্তে সেশনটি হত্যা করতে চান)।


নোট করুন যে আপনি বর্তমান সেশনটি এর সাথে পেতে পারেন $(tmux display-message -p '#S'), দেখুন: superuser.com / প্রশ্নগুলি / 410017/…
GManNickG

3
এই উত্তরটি বিশদ এবং জ্ঞানের ভিত্তির জন্য প্রপস পায়। তবে Ctrl-b + Dব্যবহারের সহজেই (এবং মনে রাখার জন্য) শি বি এর উত্তর দেখুন ।
fbicknel

"tmux detach -a" আমার জন্য কাজ করেছিল; "tmux সংযুক্তি-ডি" করেনি।
mahemoff

(1) নতুন টিএমউक्स ত্রুটি চালু রয়েছে set-option... set-remain-on-exit on। দেখুন tmux # 787 । এখন, ব্যবহার করুন: tmux set-hook -t "$tmp" window-linked 'set remain-on-exit on
ব্যবহারকারী1902689

1
(২) নতুন টিএমউক্সে, new-windowএর মতো 'echo "Use Prefix + L (i.e. ^B L) to return to session.'; while(true); do read; done"কোনও কিছুর শেষ যুক্তি ব্যবহার করতে হবে বা আপনি বার্তাটি দেখতে পাবেন না। (কিছু পরিস্থিতিতে আপনি যদি এটি স্ক্রোল করে থাকেন, বা টার্মিনালটি লম্বা হয় তবে আপনি এটি দেখতে পাবেন you আপনি যদি এটি ব্যবহার করেন তবে আমার মন্তব্য "(1)" বা কোনও সেটিংস ছাড়াই আপনি সম্ভবত ভাল remain-on-exit
ব্যবহারকারী1902689

462

আপনি কোন ক্লায়েন্টটি সেশন থেকে আলাদা করতে চান তা চয়ন করতে আপনি সর্বদা CTRL- B+ SHIFT- টিপতে পারেন D

tmux তাদের বর্তমান মাত্রা সহ সমস্ত সেশন তালিকাভুক্ত করবে। তারপরে আপনি কেবল সমস্ত ছোট আকারের সেশনগুলি থেকে আলাদা করে দিন।


6
ব্যাখ্যা। এটি মূলধন ডি। ছোট 'ডি' ক্লায়েন্টকে বিচ্ছিন্ন করে।
রঘুরাম মুর্তি পি

2
CTRL-Bযদি এটি আপনার উপসর্গ হয় CTRL-Aআমি পর্দা থেকে স্যুইচ করা হয়েছে যখন থেকে খনি হয়েছে ।
ব্লেস্কোভিচ

1
আসলে আপনাকে একই সেশন গ্রুপ থেকে ছোট আকারের সমস্ত সেশন থেকে আলাদা করতে হবে। তবে সিটিআরএল-বি + শিফট-ডি প্রতিটি সেশনটি কোন গ্রুপের অন্তর্গত তা দেখায় না। আমি চালাতে পছন্দ করব tmux list-sessionsযা কোন সেশনের নাম, আকার এবং গোষ্ঠী সম্পর্কিত তথ্য দেখায়, তারপরে tmux kill-session -t <session_name>একই গোষ্ঠীর সেশনগুলি মেরে ফেলতে।
ঝিচাং ইউ

180

Tmux এর সাম্প্রতিক সংস্করণগুলির একটি সহজ সমাধান (১.৯-এ পরীক্ষা করা হয়েছে) আপনি এখন করতে পারেন:

tmux detach -a

-a বর্তমান অধিবেশন ব্যতীত এই সেশনে অন্য সমস্ত ক্লায়েন্টের জন্য

আপনি এটি আপনার উপাধিতে রাখতে পারেন [[বাশ | zsh] আরসি

alias takeover="tmux detach -a"

ওয়ার্কফ্লো: আপনি সাধারণত আপনার সেশনে কানেক্ট করতে পারেন এবং যদি আপনি অন্য সেশনের দ্বারা বিরক্ত হন যা আপনার টিএমউক্স উইন্ডোর আকারকে বাধ্য করে তবে আপনি কেবল কল করতে পারেন takeover


13
অনেক ধন্যবাদ! কাজ করছে. যদি আপনি এটি একটি সক্রিয় টিএমএক্স সেশনে করছেন তবে কেবল সিটিআরএল + বি টিপুন (বা আপনার কাস্টম tmux কমান্ড যাহা হউক) তারপরে:detach -a
Iacchus

অথবা tmux detach -aটিএমউক্সের ভিতরে শেল কমান্ড লাইনে চালিত করুন।
jdhao

4

অন্যান্য উত্তরগুলি আমাকে সাহায্য করতে পারেনি কারণ আমি কেবল ক্লায়েন্ট সংযুক্ত ছিল (পূর্ববর্তী যা ইতিমধ্যে অধিবেশন শুরু করেছিল) ইতিমধ্যে বিচ্ছিন্ন ছিল।

এটি ঠিক করার জন্য আমি উত্তরটি এখানে অনুসরণ করেছি (আমি এক্সটার্ম ব্যবহার করছিলাম না)।

যা কেবল বলেছেন:

  1. Tmux সেশন থেকে বিচ্ছিন্ন
  2. রান resizeলিনাক্স কমান্ড
  3. টিএমাক্স সেশনে পুনরায় যোগাযোগ করুন

3

আমি কেবল এই সমস্যার মধ্যে দৌড়ে এসেছি এবং একটি পৃথক পরিস্থিতি নিয়ে হোঁচট খেয়েছি। যদিও এটি সম্ভবত একটি ইউনিকর্ন, তবুও আমি ভেবেছিলাম এটি রেখে দেব।

আমার একটি অধিবেশন ছিল যা ছোট ছিল এবং আমি লক্ষ্য করেছি যে ফন্টের আকারগুলি আলাদা ছিল: ছোট সেশনে ছোট ফন্ট ছিল। স্পষ্টতই, আমি কোনও কারণে উইন্ডো ফন্টের আকার পরিবর্তন করেছি।

ওএস এক্স-তে, আমি কেবল Cmd-+ছোট আকারের অধিবেশনটি করেছি এবং এটি জায়গায় ফিরে গিয়েছিল।


ম্যাকোএস টার্মিনালে tmux স্থিতি বারের এই স্থির অদ্ভুত স্থান। আমার যখন টার্মিনাল ট্যাবগুলি খোলা থাকে, এটি tmux স্থিতি বারের অবস্থানটি বিশৃঙ্খলা করে। জুম দিয়ে বাজানো cmd-+বা -এটি ঠিক করে।
পল

0
ps ax | grep tmux
17685 pts/22   S+     0:00 tmux a -t 13g2
17920 pts/11   S+     0:00 tmux a -t 13g2
18065 pts/19   S+     0:00 grep tmux

অন্য একজনকে হত্যা কর


8
আরও ভাল উত্তর থাকা সত্ত্বেও শিরোনাম প্রশ্নের বৈধ উত্তরের মতো বলে মনে হচ্ছে। কেন এটি বিস্মৃত হওয়ার দিকে অবনমিত হয়েছিল আমি বুঝতে পারি না।
জোল

হ্যাঁ, আমার পক্ষে এটিই একমাত্র উত্তর
ইয়াসির হনতুশ


0

আমি ব্যবহার করি Ctrl- b+ qযা এটি প্রতিটি ফলকের জন্য ফ্ল্যাশ নম্বর করে, পথে আবার অঙ্কন করে।

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