পিএস 1 (জেডএস) এ ফাংশন পান?


15

এটি এতে কাজ করে bash( parse_git_branchএটি একটি সংজ্ঞায়িত ফাংশন)

export PS1="\$(parse_git_branch)"

তবে এর সমতুল্য আমি বের করতে পারি না zsh

দ্রষ্টব্য: আমি যদি করি

PROMPT="$(parse_git_branch)"

এটি কাজ করে বলে মনে হচ্ছে, তবে প্রকৃতপক্ষে এটি কমান্ডটি চালাচ্ছে যখন আমি প্রম্পটটি সেট করি, যা বিন্দু নয়।

উত্তর:


26

আপনাকে অন্তর্ভুক্ত করতে হবে

setopt PROMPT_SUBST

আপনার .zshrc, man zshallএটি প্রম্পট এক্সপেনশন বিভাগে ব্যাখ্যা করে :

যদি PROMPT_SUBST বিকল্পটি সেট করা থাকে তবে প্রম্পট স্ট্রিংটি প্রথমে প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং পাটিগণিতের বিস্তারের শিকার হয়।


14

আসলে আপনার সমস্যাটি কেবল সেটিংসই ছিল না PROMPT_SUBST: আপনি যখন PROMPTভেরিয়েবলগুলি সেট করেন তখন আপনি আপনার স্ক্রিপ্টে ডাবল কোট ব্যবহার করেন function আপনি কেবল তখনই মূল্যায়ন চান যখন প্রম্পটটি গণনা করা হয় যে আপনাকে অবশ্যই একক উদ্ধৃতি ব্যবহার করতে হবে।


5

আকীরা যেমন বলেছে, আপনাকে প্রম্পট সাবটেক্ট ব্যবহার করতে হবে। এটি আমার প্রাথমিক কোড (এখনও এটিতে কাজ করা):

setopt PROMPT_SUBST
PROMPT='$(parse_git_branch)'

বা আরও ভাল

setopt PROMPT_SUBST
PROMPT='[$PR_MAGENTA%n$PR_NO_COLOR@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]$(parse_git_branch) %(!.#.$)'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.