zsh: tmux এ TERM = স্ক্রিন-256 রঙ সেট করুন, তবে tmux ছাড়াই xterm-256color


18

আমার টিএমউক্সের বাইরে $TERMথাকতে হবে xterm-256color(zsh সহ "প্লেইন" টার্মিনালে) তবে screen-256colortmux এর ভিতরে।

প্রথমে আমি চেষ্টা করেছি:

  • export TERM='xterm-256color'আমার যোগ করুন ~/.zshrc
  • set -g default-terminal "screen-256color"আমার যোগ করুন~/.tmux.conf

এখন, যখন আমি টার্মিনাল (বলুন, xterm) খুলুন, TERMহয় xterm-256color, সঠিক যা। তবে আমি যখন টিএমউक्स চালাই, TERMআবারও xterm-256color!

তারপরে আমি আমার লাইনে মন্তব্য করার চেষ্টা করেছি ~/.zshrc। এখন, আমি যখন টার্মিনাল খুলি, TERMহয় xterm, এবং যখন আমি টিএমউক্স চালাই, TERMহয় screen-256color। এটা যদি আমি সেট বলে মনে হয় তাই TERM.zshrcসেট tmux প্রথমত TERMকরতে screen-256color, রান শেল (যা zsh), এবং zsh সার্চ .zshrcএবং রিসেট TERMকরতে xterm-256color

সুতরাং, কিভাবে করতে TERMহবে xterm-256color"প্লেইন" টার্মিনাল, এবং screen-256colortmux মধ্যে?


5
এক্সটার্ম কনফিগারেশন (এক্স রিসোর্সস) এবং টিএমউক্স কনফিগারেশনে টিএমউক্সের জন্য এক্সটার্মের জন্য TERM নির্ধারণ করুন। Zsh এ যে কোনও কাজ আপনার করা উচিত নয়।
স্টাফেন চেজেলাস

হুম, তবে আমি অন্যান্য টার্মিনাল এমুলেটরগুলিও ব্যবহার করি: বলুন, জিনোম-টার্মিনাল এবং কোপ-স্টাইলের ড্রপ-ডাউন কনসোল "আলটিও" github.com/linvinus/AltYo , এখনও TERMএই টার্মিনালগুলিতে সঠিক সেট করার উপায় খুঁজে পাচ্ছে না
দিমিত্রি ফ্র্যাঙ্ক

1
ঠিক আছে সেই অ্যাপ্লিকেশনগুলি তাদের TERM সঠিকভাবে সেট করার জন্য দায়বদ্ধ । কারণ gnome-terminalএটি সম্ভবত হওয়া উচিত gnome-256color... সুতরাং এটি সেই অ্যাপ্লিকেশনগুলি যা আপনার সঠিকভাবে কনফিগার করতে হবে তা নয় zsh। তারা ব্যবহার করার কারণ xtermসম্ভবত মেশিনগুলির সাথে স্যাশ করার সময় সমস্যাগুলি এড়ানো যেগুলির নির্দিষ্ট নির্দিষ্ট টার্মিনো এন্ট্রি নেই। আপনি যদি জানেন যে আপনি কেবল একটি বিচ্ছিন্ন টার্মিনো ডাটাবেসযুক্ত মেশিনগুলিতে ছাঁটাই করছেন, তবে আপনি নিজের অ্যাপ্লিকেশনগুলিতে এটি পরিবর্তন করতে এবং করতে পারেন।
স্টাফেন চেজেলাস

এবং যদি আপনার একটি .zshrc ক্লডজ, আইএমও যুক্ত করতে হয় তবে সেই মেশিনগুলিতে থাকা উচিত যেগুলি অপূর্ণ টার্মিনো ডাটাবেসযুক্ত রয়েছে (xterm-256color প্রতিস্থাপন করতে xtermযদি xterm-256 কালার সমর্থিত না হয়, যদিও আমাদের এন্ট্রিগুলি যুক্ত করা আরও ভাল হবে) নিজস্ব ~ / .terminfo ডাটাবেস)।
স্টাফেন চেজেলাস

আমাদের টার্মিনাল এমুলেটরে মেয়াদ নির্ধারণ করা উচিত, ইন না .zshrc। এটি সঠিক উপায় নয়।
jdhao

উত্তর:


24

TERM এনভায়রনমেন্ট ভেরিয়েবলটি এমন অ্যাপ্লিকেশন দ্বারা সেট করা উচিত যা আপনার টার্মিনাল হিসাবে কাজ করে। এটি হ'ল পুরো বিষয়টি: তাদের ভিতরে চলমান প্রোগ্রামগুলি কী টার্মিনালটি ব্যবহৃত হচ্ছে তা জানতে দেওয়া এবং এটি কোন ধরণের বৈশিষ্ট্য সমর্থন করে।

Zsh কোনও টার্মিনাল নয়। এটি একটি খোলস। আপনার টিআরএম যদি বিশেষ কিছু করতে চায় তবে এটি কী সেট করবে তা সেটির যত্ন নিতে পারে তবে এটি সেট করার জন্য এটি দায়বদ্ধ হওয়া উচিত নয় । পরিবর্তে এটি ZSH_VERSION এর মতো ভেরিয়েবলগুলি নির্ধারণের জন্য দায়বদ্ধ যা স্ক্রিপ্ট বা অন্যান্য শিশু প্রক্রিয়াগুলি ব্যবহার করে তাদের পিতামাতৃত শেল থেকে কী আচরণ আশা করবে তা বোঝার জন্য ব্যবহার করা যেতে পারে।

পরিবর্তে, আপনি যে কোনও টার্মিনাল অ্যাপ্লিকেশন ব্যবহার করছেন তার জন্য কনফিগারেশনটি পরীক্ষা করে দেখতে হবে এবং এটিকে সঠিকভাবে রিপোর্ট করতে বলবেন ask উদাহরণস্বরূপ, আপনি xterm এর জন্য ~/.Xdefaultsএটি কনফিগারেশন মানগুলির জন্য ব্যবহৃত ফাইলটিতে এই লাইনটি যুক্ত করে এটি করতে পারেন:

xterm*termName: xterm-256color

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

if [ "$COLORTERM" = "gnome-terminal" ]; then
    export TERM=gnome-256color
fi 

তবে এটি আপনাকে টিএমউক্সের সাথে পুনরায় আপনার সমস্যার দিকে নিয়ে আসে, সুতরাং আপনার যদি এরই মধ্যে "স্ক্রিন-256 রঙ" বা "স্ক্রিন" এর মতো কিছু থাকে তবে টিআরএম পুনরায় সেট না করে অ্যাকাউন্টটির জবাবদিহি করতে হবে:

if [ "$COLORTERM" = "gnome-terminal" -a "$TERM" =~ xterm.* ]; then
    export TERM=gnome-256color
fi

অন্যান্য টার্মিনালের জন্য আপনার তাদের সঠিক কনফিগারেশন রুটিনগুলি অনুসন্ধান করতে হবে।


zshসেট করার জন্য দায়ী নয় $SHELLloginএটি সেট করার জন্য দায়ী এবং আপনি যদি অ্যাপ্লিকেশনগুলিকে ( xterm, vi...) বলতে চান তবে আপনি নিজের পছন্দসই শেল হিসাবে কোন শেলটি চান তা পরিবর্তন করতে আপনি দায়বদ্ধ । zshসেটিং $ZSH_VERSIONএবং কয়েকটি ডকুমেন্টেড বিশেষ শেল ভেরিয়েবলের জন্য দায়ী , তবে এটি স্পর্শ করে না $SHELL
স্টাফেন চেজেলাস

সংশোধন করার জন্য ধন্যবাদ @ স্টাফেনচাজেলাস এটি আমার ছিল op
কালেব

এর জন্য ধন্যবাদ, এটি konsoleআমার বাশার্কে রাখার পরিবর্তে কীভাবে TERM সেট করে তা আমাকে সন্ধান করেছে । এটা প্রোফাইলের General ট্যাবে, পরিবেশ, সেট পাওয়া যায় এটি পরিবর্তিত xtermকরতেxterm-256color
মাইক Lippert

মূল্য লক্ষ করেন, আমার ভ্যানিলা অধীনে deb10 গনোম টার্মিনাল রিপোর্ট ইনস্টল truecolorপরিবর্তে gnome-terminalজন্য $COLORTERMএবং তাই উপরে সনাক্তকরণ প্রক্রিয়া কাজ নাও করতে পারে। এক্সটারএম এই মানটি সেট করতে মোটেও উপস্থিত হয় না, এটি কোনও মানের জন্য যাচাই করা বৈধ হতে পারে। এই শব্দটির প্রকারটি সম্ভবত অন্য কোথাও এই সংক্ষিপ্তসারে আংশিকভাবে আলোচনা করা হয়েছে : gist.github.com/XVilka/8346728#true-color-detection
শন উইলসন

8

আপনার .zshrc এর ভিতরে রাখুন

[[ $TMUX = "" ]] && export TERM="xterm-256color"

এবং, আপনার .tmux.conf এর ভিতরে

set -g default-terminal "screen-256color"

2
অথবা [[ $TMUX != "" ]] && export TERM="screen-256color" এইভাবে zsh টিআরএম সেট করবে কেবল তখনই কোনও টিএমাক্স সেশনের মধ্যে ডাকা হয়
টাইটু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.