كيف يمكنني تغيير لون المطالبة الخاصة بي في zsh (يختلف عن النص العادي)؟

StackOverflow https://stackoverflow.com/questions/689765

  •  22-08-2019
  •  | 
  •  

سؤال

للتعرف بشكل أفضل على بداية ونهاية الإخراج في سطر الأوامر، أريد تغيير لون الموجه الخاص بي، بحيث يكون مختلفًا بشكل واضح عن مخرجات البرنامج.عندما أستخدم zsh، هل يمكن لأي شخص أن يقدم لي تلميحًا؟

هل كانت مفيدة؟

المحلول

وهنا مثال عن كيفية تعيين موجه الأحمر:

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

والسحر هو \e[0;31m (تشغيل المقدمة الحمراء)، و\e[0m (إيقاف سمات شخصية). وتسمى هذه أحرف. أحرف مختلفة تعطيك نتائج مختلفة، من المواقع المؤشر المطلق، أو اللون، لتكون قادرة على تغيير شريط عنوان النافذة، وهلم جرا.

لمزيد من المعلومات حول أحرف، انظر دخول يكيبيديا على رموز الهروب ANSI

نصائح أخرى

ووضع هذا في ~/.zshrc:

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

والألوان المدعومة:
الأحمر، الأزرق، الأخضر والأزرق والأصفر والأرجواني والأبيض والأسود (من هذا الإجابة ) على الرغم من أن أجهزة كمبيوتر مختلفة قد يكون الخيارات الصالحة مختلفة.

ورموز المحيطي اللون (وأي حرف أخرى غير القابلة للطباعة) مع %{....%}. هذا هو لالتفاف النص للعمل بشكل صحيح.

وبالإضافة إلى ذلك، وهنا هو كيف يمكنك الحصول على هذا العمل مع من هنا -تقليم الدليل.

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

وZsh يأتي مع المطالبات الملونة مدمج. محاولة

autoload -U promptinit && promptinit

وثم prompt -l قوائم المطالبات المتاحة، -p fire بإجراء معاينة ل"النار" موجه، -s fire يحدد ذلك.

وعندما كنت على استعداد لإضافة موجه إضافة شيء من هذا القبيل تحت خط autoload أعلاه:

prompt fade red

وأنا لا أعتقد أن هناك حاجة لautoload -U colors && colors بعد الآن، ويمكن للمرء أن تفعل ببساطة:

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

ولتحقيق نفس النتيجة مثل <وأ href = "https://stackoverflow.com/questions/689765/how-can-i-change-the-color-of-my-prompt-in-zsh-different- من طبيعي النص # 2534676 "> FireDude في الإجابة . انظر ZSH الوثائق للحصول على مزيد من المعلومات.

لقد وجدت أنه مع zsh5 (الحل الافتراضي في Debian Jessie)، كل هذه الحلول تعمل:

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

والآن لديهم مشكلة:سوف يقومون بتحريك المؤشر، مما يؤدي إلى ظهور ملصق قبيح عند التبويب (للإكمال التلقائي).الحل ببساطة هو إحاطة تسلسل الهروب بـ %{FOOBAR%}.استغرق مني بعض الوقت لمعرفة هذا.لتحميل الحلول الثاني والثالث colors الوحدة إلزامية.لإبقاء الحل الأول قابلاً للقراءة، ما عليك سوى تحديد المتغيرات للألوان التي تستخدمها.

والرجل zshall والبحث عن توسعة الفوري

وبعد قراءة الإجابات الموجودة هنا، والعديد منهم متضاربة. لقد حاول نهج مختلف على أنظمة تشغيل zsh 4،2 و5+ وجدت بأن سبب هذه الإجابات يتعارض هو أنها لا أقول أي إصدار ZSH انهم مستهدفون في. إصدارات مختلفة تستخدم في بناء الجملة مختلفة لهذا وبعضها يتطلب اوتولوادس مختلف.

ولذا، فإن أفضل رهان هو على الارجح للإنسان zshall والبحث عن التوسع الفوري لمعرفة كل قواعد التثبيت معينة من zsh. ملاحظة في التعليقات، أشياء مثل "أنا استخدم أوبونتو 11.04 أو 10.4 أو OSX" هل لا معنى للغاية لأنه من غير الواضح أي إصدار من ZSH الذي تستخدمه. أوبونتو 11.04 لا يعني إصدار أحدث من ZSH من أوبونتو 10.04. قد يكون هناك أي عدد من الأسباب التي تم تثبيت نسخة قديمة. في هذا الشأن إلى نسخة أحدث من ZSH لا يعني أي جملة لاستخدام دون معرفة أي إصدار من ZSH هو عليه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top