আমি কীভাবে zsh এ আমার প্রম্পটের রঙ পরিবর্তন করতে পারি (সাধারণ পাঠ্য থেকে আলাদা)?


121

কমান্ডলাইনে আউটপুটের শুরু এবং শেষের আরও ভাল করে সনাক্ত করতে, আমি আমার প্রম্পটের রঙ পরিবর্তন করতে চাই, যাতে এটি প্রোগ্রাম আউটপুট থেকে দৃশ্যমান আলাদা হয়। আমি যেমন zsh ব্যবহার করি, কেউ কি আমাকে একটি ইঙ্গিত দিতে পারে?

উত্তর:


58

একটি লাল প্রম্পট কীভাবে সেট করবেন তার একটি উদাহরণ এখানে:

PS1=$'\e[0;31m$ \e[0m'

যাদুটি হ'ল \e[0;31m(লাল অগ্রভাগ চালু করুন) এবং \e[0m(চরিত্রের বৈশিষ্ট্যগুলি বন্ধ করুন)। এগুলিকে এস্কেপ সিকোয়েন্স বলা হয়। বিভিন্ন অব্যাহতি ক্রমগুলি আপনাকে আপনার উইন্ডোটির শিরোনাম বারটি পরিবর্তন করতে সক্ষম হতে নিখুঁত কার্সার অবস্থান থেকে শুরু করে রঙ পর্যন্ত বিভিন্ন ফলাফল দেয়।

এস্কেপ সিকোয়েন্সের আরও তথ্যের জন্য, এএনএসআই এস্কেপ কোডগুলিতে উইকিপিডিয়া এন্ট্রি দেখুন


3
আমি আমার .zshrc- এ PROMPT = '[%!]' ব্যবহার করছি। আপনি কিভাবে এটি রঙ করতে পারেন? আমি আমার .zshrc- এ ব্যর্থতার সাথে PROMPT = '\ e [0; 31 মি [%!] \ ই [0 মি' চালাচ্ছি।
লিও লোপোল্ড হার্টজ t

3
@ এরিকবি 85: আপনি কেন ভুল বলছেন? উত্তরটি আরও ভাল করার জন্য আমি কিছু করতে পারি? আমার জন্য, উপরের কাজগুলি আমাকে একটি লাল ডলারের চিহ্ন দেয়, সুতরাং আপনি কেন এটি ভুল বলে মনে করছেন তা বুঝতে পারি না।
ব্রায়ান ওকলি

4
এটি কাজ করছে, তবে স্ট্রিংয়ের আগে z zshrc কে বিচ্যুত করে তোলে। আমি যখন টেবুলেশন ব্যবহার করি তখন পাঠ্যটি বামদিকে রাখা হয়। আমি জো ব্যক্তিকে উত্তরটি পছন্দ করি
মোবিয়াস

1
আমি সম্মতি দিচ্ছি @ মোবিয়াস আমি এটির কাজটি করতে চেয়েছিলাম এটি পরিষ্কার এবং সহজ ছিল, তবে এটি সিডি
ডাব্লুটি

2
আমি ভেবেছিলাম zsh এর জন্য পাগল অদ্ভুত এএনএসআই পালানোর জিনিসগুলির দরকার নেই ... এর চেয়ে আরও ভাল উত্তর অবশ্যই হবে ...
চার্লি পার্কার

264

এটি রাখুন ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "

সমর্থিত রং:
red, blue, green, cyan, yellow, magenta, black, & white(থেকে এই উত্তর ) বিভিন্ন কম্পিউটারের বিভিন্ন বৈধ অপশন আছে পারে, যদিও।

চারপাশের রঙিন কোডগুলি (এবং অন্য কোনও মুদ্রণযোগ্য অক্ষর) সহ %{....%}। এটি সঠিকভাবে কাজ করার জন্য পাঠ্য মোড়কের জন্য।

অতিরিক্তভাবে, আপনি এখানে থেকে ডিরেক্টরি-ট্রিমিংয়ের সাথে এটি কীভাবে কাজ করতে পারেন তা এখানে

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "

3
একমত, এখন পর্যন্ত উচ্চতর উত্তরের (ভাগ্যক্রমে এই উত্তরটি ছিল গুগলের তৃতীয় ফলাফল;)
new123456

3
আমার জন্য কাজ না। :(zsh: colors: function definition file not found
বালকি

আপনি কি ZSH4 ব্যবহার করছেন? আমি মনে করি না এটি 4.3.11 এর চেয়ে কম সংস্করণে কাজ করে। আপনার যদি সর্বশেষতম সংস্করণ থাকে তবে এটি সঠিক ফাইলগুলি ব্যবহার করছে না।
জো ব্যক্তি

বৈধ রঙের মানগুলি কী কী?
চકૃત

12
এর %{...%}অর্থ হল যে বিষয়বস্তুটিকে আক্ষরিক অব্যাহতি ক্রম হিসাবে ব্যাখ্যা করা হবে, সুতরাং ক্রমটি মুদ্রণের সময় চলবে না। আপনি যদি এটি ব্যবহার না করেন তবে রঙের কোডগুলি প্রকৃতপক্ষে কার্সারটি সরিয়ে নিয়ে যায় এবং অনাকাঙ্ক্ষিত প্রভাব তৈরি করতে পারে। এটি zshmisc ম্যান পৃষ্ঠাতেVisual Effects বিভাগে নথিভুক্ত করা হয়েছে
ব্রুনো

69

Zsh রঙিন প্রম্পট অন্তর্নির্মিত সাথে আসে। চেষ্টা

autoload -U promptinit && promptinit

এবং তারপরে prompt -lউপলভ্য প্রম্পটগুলি তালিকাভুক্ত -p fireকরে, "ফায়ার" প্রম্পটের পূর্বরূপ দেয়, -s fireসেট করে।

আপনি যখন কোনও প্রম্পট যুক্ত করতে প্রস্তুত হন উপরের অটোলোড লাইনের নীচে এর মতো কিছু যুক্ত করুন:

prompt fade red

সমস্ত থিম রঙ করার উপায় আছে? আমি ওয়াল্টার্স প্রম্পট পছন্দ করি তবে এটি লাল রঙে চাই।
প্যাট মাইরন 21

25

আমি মনে করি না যে এটি autoload -U colors && colorsআর প্রয়োজন হয় এবং একটি সহজভাবে এটি করতে পারে:

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

ফায়ারডুডের উত্তর হিসাবে একই ফলাফল অর্জন করতে । দেখুন ZSH ডকুমেন্টেশন আরও তথ্যের জন্য।


অবগতির জন্য। আমি কেবল উবুনুতু ১১.০৪ এ চেষ্টা করেছি এবং রংগুলি আমার জন্য ছাড়া কাজ করে নিautoload -U colors && colors
dpc.pw

2
রহস্যময়। ওএস এক্স এবং উবুন্টু 10.04 এ আমার জন্য কাজ করে।
অ্যান্ড্রু মার্শাল

@ অ্যান্ড্রু মার্শাল হ্যাঁ, তবে এটি নিয়ে কাজ করার সম্ভাবনা বেশি autoload
জো ব্যক্তি

@ fireDude67 কিভাবে সেট করবেন autoload on?
বালকি

1
আপনার যদি প্রয়োজন না হয় তবে এর autoload -U colorsঅর্থ হ'ল আপনার ডিস্ট্রোতে ইতিমধ্যে এটি অন্য কোনও zsh ইনিশিয়ালাইজেশন ফাইলে রয়েছে। অন্যদের সাথে ভাগ করে নেওয়ার আপনার ইচ্ছা থাকা স্ক্রিপ্টগুলিতে আপনাকে এখনও এটি অন্তর্ভুক্ত করা উচিত।
22.33 এ টাইপ করুন

23

উপলব্ধ রঙ:

for i in {1..256}; do print -P "%F{$i}Color : $i"; done;

                                      


উপলব্ধ ভেরিয়েবলগুলি:

  • %F{118} (1 থেকে 256)
  • $FG[018] (1 থেকে 256)
  • $fg[magenta] (ম্যাজেন্টা, লাল, সাদা, হলুদ, কালো, নীল, সায়ান, সবুজ)

প্রম্পট উদাহরণ:

PS1='%(?.%F{green}.%F{green})%n@%m:%~%# %f'

গ্রেপ্তার

PS1='%{$fg[gray]%}[%T][%n@%m%{$reset_color%}:%c%{$reset_color%}%{$fg[gray]%}$(git_prompt_info)]$(prompt_char)%{$reset_color%} ' 

গ্রেপ্তার


ইনস্টল করুন:

ভেরিয়েবল সংজ্ঞা (PS1 / PROMPT) যুক্ত করা প্রয়োজন ~/.zshrc

আমরা এখনই এটির পরীক্ষা করার জন্য বর্তমান প্রম্পটে PS1 ভেরিয়েবলটিকে নতুনভাবে সংজ্ঞায়িত করতে পারি (পরিবর্তনগুলি সংরক্ষণ করা হয় না)।


15

উপরের ব্রায়ান ওকলির উত্তরটিতে একটি ত্রুটি রয়েছে কারণ এটি ইতিমধ্যে ইঙ্গিত করা হয়েছে এবং অ্যান্ড্রু মার্শাল দ্বারা প্রদত্ত সমাধানটি যদিও এই ত্রুটি বহন করে না, তবুও এটি ব্যবহৃত রঙগুলিতে খুব বেশি কাস্টমাইজেশনের জন্য এটি সুস্পষ্ট করে না।

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

বিভিন্ন রঙের জন্য 3-ডিজিট কোড। প্রথমত, এখানে আমরা বিভিন্ন রঙের জন্য 3-ডিজিটের কোডগুলি খুঁজে পেতে পারি: https://unix.stackexchange.com/a/124409/194343 । উদাহরণস্বরূপ, 214 কিছু ধরণের কমলা রঙ।

অগ্রভূমি এবং পটভূমি। অন্যান্য মূল তথ্য হ'ল এফ ওরিগ্রাউন্ড এবং ব্যাক কে গ্রাউন্ড কালারের জন্য তারা যথাক্রমে এফ এবং কে দিয়ে কী চান তা নির্ধারণ করতে পারে । উত্সটি ভিজ্যুয়াল এফেক্টগুলির জন্য zsh ম্যানুয়াল: http://zsh.sourceforge.net/Doc/Re कृपया / Prompt-Expansion.html# ভিজ্যুয়াল-এফেক্টস

সুতরাং, উদাহরণস্বরূপ, নিম্নলিখিত দুটি কমান্ড

autoload -U colors && colors
export PS1="%F{214}%K{000}%m%F{015}%K{000}:%F{039}%K{000}%~%F{015}%K{000}\$ "

কালো ব্যাকগ্রাউন্ডের সাথে কমলাতে হোস্টনাম উপস্থাপন করুন, তার পরে কালো পটভূমির সাথে সাদা একটি কোলন এবং তারপরে কালো পটভূমির সাথে উজ্জ্বল নীল রঙের বর্তমান কার্যকরী ডিরেক্টরি এবং তারপরে কালো পটভূমিতে সাদা ডলার সাইন ইন করুন।

আরও সম্পর্কিত তথ্য নীচে পাওয়া যায়।

ডানদিকে প্রম্পট তথ্য। উদাহরণস্বরূপ, একটি টাইমস্ট্যাম্প যুক্ত করা। Https://superuser.com/a/1251045/290299 দেখুন । অবশ্যই এটি রঙিন কোডেড হতে পারে, উদাহরণস্বরূপ কিছু হালকা নীল / বেগুনি-ইশ রঙ সহ:

RPROMPT="%F{111}%K{000}[%D{%f/%m/%y}|%@]"

জন্য রঙ lsLs এর জন্য ম্যানুয়ালটি পড়ার পরে উদাহরণস্বরূপ ls, নিম্নলিখিত দুটি কমান্ড ব্যবহারের জন্য রঙগুলি সক্রিয় করতে পারে :

export CLICOLOR=1
export LSCOLORS=gafacadabaegedabagacad

শেষ অবধি, আমি আমার কনফিগারেশনে খুশি হওয়ায় আমি পরীক্ষিত হয়নি এমন সর্বশেষ মন্তব্য হিসাবে, অন্য একটি অ্যাভিনিউ ম্যাকপোর্টসcoreutils থেকে পোর্টটি ইনস্টল করার জন্য এবং তার পরে ব্যবহার করতে পারে (উত্স: https://unix.stackexchange.com/a/174596 / 194343 )। (আমি ভবিষ্যতে এই শেষ অংশটি সম্পাদনা করতে পারি কারণ উপরের সমস্তগুলি সম্পর্কিত টুকরো যা প্রতিদিনের জীবনকে আরও মজাদার এবং সহজেই মোকাবেলা করতে সহজ করে তোলে))gdircolors


1
এটি একটি অত্যন্ত সহায়ক উত্তর। এটি একসাথে রাখার জন্য ধন্যবাদ।
শোনাকদে

@ শাওনাকদে আপনাকে স্বাগতম! :)
মাইটিমাউস

4

আমি খুঁজে পেয়েছি যে, zsh5 (ডেবিয়ান জেসির উপর ডিফল্ট এক) সহ, এই সমস্ত সমাধান কাজ করে:

  • $'\e[00m
  • $fg[white]
  • $fg{white}

এখন, তাদের একটি সমস্যা রয়েছে: তারা কার্সারটি সরিয়ে ফেলবে, ফলস্বরূপ ট্যাবিংয়ের সময় কুরুচিপূর্ণ ডেসাল (অটো-সমাপ্তির জন্য)। সমাধানটি কেবল এর সাথে পালানোর ক্রমগুলি ঘিরে %{FOOBAR%}। এটি অনুধাবন করতে আমাকে কিছুক্ষণ সময় নিল দ্বিতীয় এবং তৃতীয় সমাধানের জন্য লোডিং colorsমডিউল বাধ্যতামূলক। 1 ম সমাধানটি পঠনযোগ্য রাখার জন্য, আপনার ব্যবহৃত রঙগুলির জন্য কেবল ভেরিয়েবলগুলি সংজ্ঞায়িত করুন।


2

শেষ কমান্ডের প্রস্থান স্থিতির উপর নির্ভর করে রঙের সাথে একটি প্রম্পট পেতে, আপনি এটি ব্যবহার করতে পারেন:

PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'

শুধু আপনার এই লাইন যুক্ত করুন ~/.zshrc

ডকুমেন্টেশন সম্ভব প্লেসহোল্ডার তালিকাবদ্ধ করে।


এটি এখানে সেরা সমাধান, আপনাকে অনেক ধন্যবাদ।
এডি একফো

2

আমার প্রিয় চেষ্টা করুন: রাখুন

~/.zshrc

এই লাইন:

PROMPT='%F{240}%n%F{red}@%F{green}%m:%F{141}%d$ %F{reset}'

ভুলে যাবেন না

source ~/.zshrc

পরিবর্তন পরীক্ষা করতে

আপনি অবশ্যই রঙ / রঙের কোডগুলি পরিবর্তন করতে পারেন :-)


0

ম্যান জ্যাশাল এবং প্রম্পট এক্সপেনশনের জন্য অনুসন্ধান করুন

এখানে বিদ্যমান উত্তরগুলি পড়ার পরে, তাদের মধ্যে বেশ কয়েকটি বিরোধমূলক। আমি zsh 4.2 এবং 5+ চলমান সিস্টেমে বিভিন্ন পদ্ধতির চেষ্টা করেছি এবং খুঁজে পেয়েছি যে এই উত্তরগুলি পরস্পরবিরোধী হওয়ার কারণ তারা ZSH এর কোন সংস্করণে লক্ষ্যবস্তু হয়েছে তা তারা বলে না। বিভিন্ন সংস্করণ এর জন্য আলাদা সিনট্যাক্স ব্যবহার করে এবং তাদের কিছুটির জন্য বিভিন্ন অটোলোডের প্রয়োজন।

সুতরাং, সর্বোত্তম বেটটি সম্ভবত জেড শ্যাশল এবং আপনার বিশেষ zsh এর ইনস্টলেশন সম্পর্কিত সমস্ত বিধি জানতে প্রম্পট এক্সপেনশনের সন্ধান করুন। মন্তব্যে নোট করুন, "আমি উবুন্টু ১১.০৪ বা ১০.৪ বা ওএসএক্স ব্যবহার করি" এর মতো বিষয়গুলি খুব সার্থক নয় কারণ আপনি জেডএসএইচের কোন সংস্করণ ব্যবহার করছেন তা পরিষ্কার নয়। উবুন্টু 11.04 উবুন্টু 10.04 এর চেয়ে ZSH এর নতুন সংস্করণ বোঝায় না। পুরানো সংস্করণটি ইনস্টল হওয়ার কারণে অনেকগুলি কারণ থাকতে পারে। সে ক্ষেত্রে জেডএসএইচের একটি নতুন সংস্করণ জেডএসএইচের কোন সংস্করণ তা না জেনে কোন সিনট্যাক্সটি ব্যবহার করবেন তা বোঝায় না।


0

উপরের সমস্ত উত্তরগুলির পরিপূরক করার জন্য আরেকটি সুবিধাজনক কৌশলটি হ'ল রঙিন প্রম্পট সেটিংসকে একটি zsh ফাংশনে স্থাপন করা। সেখানে আপনি স্থানীয় ভেরিয়েবলগুলি আরেফ লম্বা কমান্ডগুলিতে সংজ্ঞায়িত করতে পারেন, উদাহরণস্বরূপ rc=$reset_colorবা আপনার নিজস্ব রঙের ভেরিয়েবলগুলি সংজ্ঞায়িত করতে পারেন। এটিকে আপনার .zshrcফাইলে স্থাপন করতে এবং আপনার সংজ্ঞায়িত ফাংশনটিতে কল করতে ভুলবেন না :

# Coloured prompt
autoload -U colors && colors
function myprompt {
  local rc=$reset_color
  export PS1="%F{cyan}%n%{$rc%}@%F{green}%m%{$rc%}:%F{magenta}%~%{$rc%}%# "
}
myprompt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.