বাইনারি ফাইল ক্যাটিংয়ের পরে tmux স্ট্যাটাস-বার দূষিত, কীভাবে রিসেট করবেন?


94

আমি দুর্ঘটনাক্রমে catএকটি বাইনারি ফাইল আইং পরে আমার tmux টার্মিনাল স্ক্রু আপ । এখন আমার tmuxগন্ডগোল হয়েছে। বিচ্ছিন্নকরণ এবং পুনরায় সংযুক্তি কোনও উপকার করে না, আবার কোনও পুনরায় চিত্রও আঁকা যায় না (সিবি আর)। চলমান resetশুধুমাত্র সক্রিয় ফলকে না বাকি redraws। ভিতরে ssty saneবা বাইরে চালানো কোনওরকম কাজে tmuxআসে না।

tmux গণ্ডগোল

প্রতিটি ফলকের মধ্যে, আমি যা টাইপ করি তার থেকে আমার সাধারণ প্রতিক্রিয়া রয়েছে ( resetটার্মিনালটি বিশৃঙ্খলার সাথে সাথেই এর প্রাথমিক কলটি সমাধান হয়ে গেছে) তবে আমি স্থিতি-বারটি ঠিক করতে পারি না।

ইন gnome-terminal, স্থিতি-বারে প্রতিটি আপডেট স্থিতি দণ্ডকে বাড়ার দিকে নিয়ে যায় (উপরে স্ক্রিনশটটি দেখুন)। উদাহরণস্বরূপ, যখন আমি কোনও নতুন অ্যাপ্লিকেশন চালাচ্ছি, যখন আমি প্যানগুলি স্যুইচ করি বা যখন আমি কোনও ফলকের আকার পরিবর্তন করি তখন এটি ঘটে। একটি পুনরায় আঁকতে বাধ্য করা ( জেনোম-টার্মিনাল মেনু দিয়ে C-b rচলার resetমাধ্যমে) স্ট্যাটাস-বারটিকে একক লাইনে সঙ্কুচিত করে, তবে এটি দূষিত।

ইন xterm, স্ট্যাটাস-বারটি এক লাইনের মধ্যেই থাকে তবে চিত্র হিসাবে এটি দূষিত থাকে।

আমি tmux 1.5 ব্যবহার করছি।

  • আমি কীভাবে আমার- tmuxটার্মিনাল ঠিক করব ?

২০০৮ সালের এই বাগ রিপোর্টটি একই সমস্যার বর্ণনা দিচ্ছে বলে মনে হচ্ছে তবে এটি স্থির হিসাবে চিহ্নিত হয়েছে। এটি কোন সংস্করণে ঠিক করা হয়েছিল তা আমি জানি না, তবে tmux 1.5 এর 2008 থেকে একটি সমাধান অন্তর্ভুক্ত করা উচিত।


এই সমস্যাটি কেবল ছিল, এবং "ক্লিয়ার" আমার পক্ষে কাজ করেছিল।
ব্যবহারকারী 149818

1
যদি কেউ একই সমস্যায় পড়ে তবে উপরের সমস্ত কিছু করার পরেও আমার টিএমউक्स স্ট্যাটাস বারটি গণ্ডগোল হয়েছে। উইন্ডো বিকল্প স্থিতি-ডান সেট করে এটি মেরামত করে।

2
উপরের পরামর্শটি আমার জন্যও এটি স্থির করেছে। কমান্ডটি হ'ল: Control+ b+ :এবং তারপরে set -g status-right "#H"হোস্ট-নেমে স্ট্যাটাস-ডান সেট করা।
মায়াঙ্ক

উত্তর:


85

উইন্ডো 4 নামকরণ করার চেষ্টা করুন

  • উইন্ডো 4 এ স্যুইচ করুন: Control+b 4
  • উইন্ডোটির নাম পরিবর্তন করুন: Control+ b , Control+ আমার নতুন uনাম

(মাঝখানে কমাতে থাকে)

বা: Control+b :rename-window myNewname


1
উইন্ডোটির
পুনর্নবীকরণ

4
নতুন টাইপ করার আগে আপনাকে নামটি সাফ করতে হবে। সবচেয়ে সহজ ctrl+uctrl+b , ctrl+u newname
উপায়টি

1
মিষ্টি - এটি byobuপাশাপাশি কাজ করে ( f8, <newname>)
ali_m

কেন Control-uদরকার? Control-,ইতিমধ্যে ঠিক নামকরণ করা হচ্ছে? যদিও আমি এটি নিশ্চিত করতে পারি যে এটি আমার ক্ষেত্রে প্রয়োজন ছিল, এটি কি কোনও ধরণের পুনরায় সেট করা চরিত্র?
hbogert

1
কন্ট্রোল-ইউ লাইন সাফ করে। যদি আপনি প্রতিটি টার্মিনালে আপনার পাসওয়ার্ড ফ্যাটফিং করে থাকেন এবং এটি জানেন তবে আপনি 20 বার ব্যাকস্পেসটি আঘাত করার পরিবর্তে কন্ট্রোল-ইউ ব্যবহার করে এন্ট্রি সাফ করতে পারেন
রিকোমি

55

জগাখিচুড়ি পরিষ্কার করতে আপনার দুটি কমান্ড সিকোয়েন্স দরকার:

প্রথমে এটিকে গার্ফড উইন্ডোতে চালান (এটি আপনি কাজ করার পরেও কাজ করে ssh):

stty sane; printf '\033k%s\033\\\033]2;%s\007' "`basename "$SHELL"`" "`uname -n`"; tput reset; tmux refresh

তারপরে এটি চালিত কম্পিউটারে এটি চালান tmux(এটি এর ভিতরে এবং বাইরে কাজ করে tmux):

নিম্নলিখিত কমান্ডটি সমস্ত tmuxদৃষ্টান্তগুলিকে প্রভাবিত করে , যা বর্তমান উইন্ডোর চেয়ে বাম অবস্থার পরিবর্তন করতে পারে। আপনার যদি সেই বৈশিষ্ট্যটির প্রয়োজন না হয় তবে এটিকে ছেড়ে দিন।

tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done

বিস্তারিত ব্যাখ্যা করা হয়েছে

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

এটি কীভাবে কাজ করে তা বোঝার জন্য আসুন প্রথমে এবং এর স্থিতি রেখাটি হত্যা tmuxকরি tty। এরপরে আমরা এটি পুনরায় সংশোধন করে এমন একটি পদ্ধতি ব্যবহার করে যা সর্বদা পাওয়া উচিত (আদেশের বিপরীতে reset)।

কীভাবে tmuxটার্মিনালটি (অনুমানযোগ্য UTF-8) অযোগ্য ব্যবহারযোগ্য

stty -echo; printf '\016\033k%2000s\\\033\033]2;\355\007' $'\302\217'

সতর্কতা: উপরের কমান্ডটি চালানোর পরে, শেলটি অন্ধ এবং বধির দেখায় এবং কেবল অজানা অচেনা ভাষায় বুলশিটের কথা বলে মনে হয়। এটি কীভাবে মেরামত করবেন তা নীচে দেখুন।

ব্যাখ্যা:

  • stty -echo টার্মিনাল ধরণের প্রতিক্রিয়া মারে

  • printf '\016'একটি করে SO, তাই আপনি বিকল্প চরিত্র সেট হয়

  • printf '\033]2;%s\007' 'right status text'সঠিক স্থিতি সেট করে, এক্ষেত্রে $'\355', যা একটি উপস্থাপনা বাগটি প্রকাশ করে

  • printf '\033k%2000s\033\\' $'\302\217' উইন্ডো শিরোনাম নাম সেট করে

কিছু ইন্টারেক্টিভ কমান্ড ক্র্যাশ হয়ে শেলের মধ্যে ফিরে যাওয়ার পরে এটি টার্মিনালে আপনি দেখতে পাচ্ছেন combination ( /bin/catআপনি stty -echoআইএমএইচওকে উস্কে দিতে পারবেন না , তবে ইন্টারেক্টিভ কমান্ডগুলি vimসাধারণত এটি সেট করে))

এখন এই জগাখিচুড়ি পরিষ্কার করুন

stty sane; printf '\033k%s\033\\\033]2;%s\007' "$(basename "$SHELL")" "$(uname -n)"; tput reset; tmux refresh

দ্রষ্টব্য: আপনি যদি অনুলিপি এবং পেস্ট ব্যবহার করেন (পেস্ট করার Shiftসময় আপনার সম্ভবত ধরে রাখা দরকার ), আপনি সম্ভবত নিজের পেস্টটি দেখতে পাচ্ছেন না যদি আপনি উপরের কমান্ডটি আপনার সাথে জগাখিচু করতে ব্যবহার করেন tty। অতএব, এটিকে আটকে দেওয়ার পরে অন্ধভাবে এন্টার কী টিপুন।

ব্যাখ্যা:

  • stty sane "সনে" টার্মিনাল পরামিতি সেট করে, তাই টাইপ করার সময় আপনি আপনার প্রতিধ্বনি ফিরে পান back

  • printf '\033k%s\033\\' "$(basename "$SHELL")"উইন্ডো শিরোনামটি স্বাভাবিক অবস্থায় ফিরে আসে। আপনি tmux rename-window "$(basename "$SHELL")"বিকল্পভাবে ব্যবহার করতে পারেন , তবে tmux rename-windowকেবল tmuxপালানোর ক্রমটি যেখানে কাজ করে তা সীমাবদ্ধ ।

  • printf '\033]2;%s\007' "$(uname -n)"ডিফল্ট হিসাবে দেখানোর জন্য স্থিতি-অধিকারটি পুনরায় সেট করে। (মনে রাখবেন যে আপনার ব্যবহার করা উচিত নয় tmux set status-right "something", কারণ এটি কেবল pane titleদুর্নীতিগ্রস্থ হয়ে পড়েছে, তাই status-rightকিছু উপস্থাপনা বাগটি প্রকাশ করে Also এছাড়াও নোট করুন, আমি tmuxসরাসরি ফলক শিরোনাম সেট করার কোনও আদেশ পাইনি ))

  • tput reset টার্মিনালটি পুনরায় সেট করে, কেবল যদি এর সাথে গণ্ডগোল হয়েছে

  • tmux refresh অন্যান্য ধ্বংসাবশেষ থেকে মুক্তি পেতে পর্দা সতেজ করে which

কিছুটা মিস করছি

printf '\033k%s\033\\' "$(basename "$SHELL")"মান ক্ষমতা হারায় tmuxবাম স্থিতি অঞ্চলে বর্তমান কমান্ড উপস্থাপন। printf '\033k%s\033\\' "something"মৃত্যুদন্ড কার্যকর করার পরে এই ক্ষমতাটি নষ্ট হয়ে গেছে এবং আমি কোনও ভাল উপায় খুঁজে পাইনি, তবুও কীভাবে এটি আগের মতো করে আনতে হবে।

তবে, নীচের মন্তব্যে উল্লিখিত হিসাবে, আপনি tmuxনিম্নলিখিত tmuxসেটিংসের সাথে প্রতিস্থাপন হিসাবে অনুরূপ বৈশিষ্ট্যটি সক্রিয় করতে পারেন :

set-window-option automatic-rename on
  • হয় tmuxকমান্ড লাইনে এটি করুন, যা "উইন্ডোজ" :(যেখানে "এস্কেপ" আপনার tmuxকমান্ড কী) দিয়ে বর্তমান উইন্ডোতে পৌঁছানো যাবে এবং তারপরে কমান্ডটি প্রবেশ করুন।

  • বা tmux set-window-option automatic-rename onআপনার বর্তমান টার্মিনালে উত্তেজিত , তবে আপনি যদি সরাসরি শেল স্তরে সরাসরি না থাকেন তবে এটি ব্যর্থ হয়, উদাহরণস্বরূপ এটি এর মধ্যে sudoবা এর সাথে কাজ করে না ssh

  • বা বর্তমান tmuxসেশনে অন্য উইন্ডোটি খুলুন এবং নিম্নলিখিত আদেশটি কার্যকর করুন:

    for a in `tmux list-windows | sed 's/:.*//'; do tmux set-window-option -t "$a" automatic-rename on; done`
  • অথবা যে কম্পিউটারটি চলছে tmuxসেগুলিতে অন্য শেলটি খুলুন এবং নিম্নলিখিত কমান্ডটি কার্যকর করুন (এটি tmux এর বাইরে):

    tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done

PS: যারা এই সমাধানটি একত্রিত করতে সহায়তা করেছেন তাদের সকলকে ধন্যবাদ।


2
uname -nপরিবর্তে নোট করুন hostname -s। প্রসঙ্গক্রমে hostnameবিপজ্জনক root, কারণ আপনি আপনার হোস্টটির নামটি -sপ্রাচীন লিনাক্স / ইউনিক্সে নাম পরিবর্তন করতে পারেন যেখানে hostnameবিকল্পগুলি ছাঁটাই করে না।
টিনো

ফলকের শিরোনামটি পুনরায় সেট না করা আমাকেও খারাপ করে তোলে; এই কারণেই আমি এখানে প্রথম স্থানে আছি। পৃষ্ঠায় একমাত্র তিনি হওয়ার জন্য আপনাকে ধন্যবাদ যিনি কমপক্ষে সেই ঘাটতি স্বীকার করেছেন!

2
উইন্ডো শিরোনাম
ইবি

stty saneঅংশ আমাকে সাহায্য যখন আমার টার্মিনাল মাতাল আপ করা হয় এবং কিছু দেন নি। ধন্যবাদ!
জনি

যদি আপনি "অনুপস্থিত বিট" চান, যেমন বাম স্থিতি ক্ষেত্রে প্রদর্শিত বর্তমানে চলমান কমান্ড, আপনি tmux কমান্ডটি ব্যবহার করতে পারেন set-window-option automatic-rename
ডেভিড ফোরস্টার

26

আপনি যে নির্দিষ্ট সমস্যাটি দেখতে পাচ্ছেন সেটি উইন্ডো 4 এর নাম / শিরোনামের সাথে করতে হবে do খুব দীর্ঘ হওয়া (স্পষ্টতই) এবং অদ্ভুত অক্ষরযুক্ত সমন্বয় যা tmux এটি সংক্ষিপ্ত হিসাবে পরিমাপ করে (তাই এটি স্থিতি দণ্ডটিকে যথাযথভাবে সীমাবদ্ধ করতে ব্যর্থ হয়) স্ক্রিনের প্রস্থে) আমি কীভাবে এটি পুনরায় সেট করবেন তা নিশ্চিত নই (আমার উপর এটি অগ্রভাগ প্রক্রিয়ার নামটি সন্ধান করে), আপনাকে উইন্ডোটি বন্ধ করতে হতে পারে।


4
ডিফল্ট একটি উইন্ডো নামান্তর হয়^b - ,
রব

8
@ রব এর মন্তব্যে কীবোর্ড শর্টকাট আপনাকে বিভ্রান্ত করে, তা Ctrl- bতবে ,
ডগ পল

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

আপনি Ctrl-b :নাম পরিবর্তন করতে পারেন উইন্ডো <নাম এখানে যায়>; এটি কমান্ডের জন্য কীবোর্ড শর্টকাটের পরিবর্তে tmux কমান্ড সিস্টেম ব্যবহার করে।
আব্বাফাই


5
tmux set-option -g status off && tmux set-option -g status on 

এটি আমার জন্য স্থির করে যখন উইন্ডোটির নাম ব্যতীত অন্য কোনও কিছু দূষিত হয়েছিল এবং এটি কী ছিল তা খুঁজে বের করার জন্য আমাকে বিরক্ত করা যাবে না।


2

tmuxসমস্যার কারণ হতে পারে। আপনাকে stty saneকমান্ড লাইনে প্রার্থনা করতে হতে পারে । এটি ইন-কার্নেল টিটিওয়াই ড্রাইভারগুলি ডিফল্ট মানগুলির কিছু সেটগুলিতে পুনরায় সেট করে যা আপনাকে সাধারণত এগিয়ে যেতে দেয়। যদি টিটিওয়াই ড্রাইভারগুলি যথেষ্ট গণ্ডগোল করে তবে আপনার stty saneঅন-স্ক্রীন প্রতিক্রিয়া ছাড়াই "অন্ধ" টাইপ করতে হতে পারে ।


stty saneসমস্যাটিও সমাধান করে না। আমার অন-স্ক্রিন প্রতিক্রিয়া রয়েছে, প্রতিটি tmuxপ্যানে আমি স্বাভাবিকভাবে টাইপ করতে পারি এবং প্রতিক্রিয়া জানাতে পারি, তবে যত তাড়াতাড়ি tmux কে কিছু আঁকতে হবে (যেমন একটি নতুন অ্যাপ্লিকেশন চালানো, প্যানগুলি পরিবর্তন বা পুনরায় আকার দেওয়া) স্ট্যাটাস-বারটি প্যানে স্থানান্তরিত করে ...
অঙ্কিত

2

আপনার কনফিগার ফাইলটি পুনরায় লোড করার চেষ্টা করবেন?

Ctrlbতারপরে: :source-file ~/.tmux.conf


এখন পর্যন্ত সেরা সমাধান।
ডেভ

-3

আমার জন্য সমস্যাটি সমাধান করার জন্য:

আমি কেবল ইস্যু ফলক এবং উইন্ডোটি মেরেছি এবং একটি নতুন উইন্ডো এবং ফলক তৈরি করেছি।

ইস্যু ফলটিতে, CTRL+ AXএবং CTRL+ AC


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