আপনি কীভাবে প্রতিটি এন্টারে zsh আপডেটে RPROMPT করবেন?


11

আমার RPROMPTব্যবহার করে এসএনএন তথ্য প্রদর্শন করতে সেট করা হয়েছে vcs_info। এটা পড়ে RPROMPT=${vcs_info_msg_0_}vcs_infoবলা হয় ব্যবহার precmd()। যাইহোক, আমি ডিরেক্টরি পরিবর্তন করার সময় আরপিআরএমপিটি আপডেট হয় না। এটি কেবল তখনই কাজ করে যদি আমি প্রম্পটটি আবার অনুরোধ করি (হয় উত্স। / .Zshrc বা প্রম্পট দ্বারা) এবং chdir- র পরিবর্তিত হয় না, যদি না আমি প্রম্পটটি আবার অনুরোধ করি। এই আচরণ পরিবর্তন করার কোনও উপায় আছে কি?

উত্তর:


20

মূল্যায়ন বিলম্ব করতে অ্যাসাইনমেন্ট এ ভেরিয়েবলের মানের চারপাশে একক উদ্ধৃতি রাখার চেষ্টা করুন:

RPROMPT='${vcs_info_msg_0_}'

স্থানান্তরিত হয়ে গেলে চেক চিহ্নটি কেন চলে যাবে?

@ ইউজার ৫৩ :৩: আপনার এটি মেটা.ইনিক্স.সটাকেক্সচেঞ্জ ডটকম অথবা মেটা.স্ট্যাকওভারফ্লো ডটকমের কাছে জিজ্ঞাসা করা উচিত। আমি উত্তরটি জানি না (বা কেবল অস্পষ্টভাবে জানি)।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

3
এটি setopt PROMPT_SUBSTফাইলের আগে ঘটেছিল তা প্রয়োজন । অন্যথায়, এটি কেবল প্রম্পটটি আক্ষরিকভাবে প্রতিধ্বনিত করবে।
নিক মেহারি

1

মূল্যায়ন বিলম্ব করতে একক-উদ্ধৃতি ব্যবহার করা গতিশীল উপকরণগুলিও সংজ্ঞায়িত করতে কাজ করে। এখানে tবিদ্যমান একটি এসএসএল এজেন্ট প্রসেসের সাথে একটি নতুন শেল সংযুক্ত করার জন্য ব্যবহৃত একটি এলিফ রয়েছে, যা ssh-startএকটি বাড়িতে নামির একটি ফাইলের সাথে শেল কোড লেখায় এমন একটি নাম দিয়ে শুরু করা হয়েছিল :

mymistress:~> which ssh-start
ssh-start: aliased to eval `ssh-agent | tee ~/.ssh/ssh-agent.out` ; ssh-add ~/.ssh/id_rsa
mymistress:~> grep "alias t" .zshrc    
alias t="eval `cat ~/.ssh/ssh-agent.out`"
mymistress:~> which t
t: aliased to eval SSH_AUTH_SOCK=/tmp/ssh-nZBZp29804/agent.29804; export SSH_AUTH_SOCK;\nSSH_AGENT_PID=29805; export SSH_AGENT_PID;\necho Agent pid 29805;`

এর সংজ্ঞাটি tখারাপ কারণ এটি তাজা রান থেকে নতুন তথ্য ssh-startউপেক্ষা করার কারণ। tআমার .zshrc এ এককভাবে উদ্ধৃত হওয়া উপন্যাসের সংজ্ঞা পরিবর্তন করা আরও ভাল আচরণ দেয়:

mymistress:~> grep "alias t" .zshrc
alias t='eval `cat ~/.ssh/ssh-agent.out`'
mymistress:~> source ~/.zshrc
mymistress:~> which t
t: aliased to eval `cat ~/.ssh/ssh-agent.out`

ডাবল কোট (কমান্ড বা পরিবেশের ভেরিয়েবলগুলির তাত্ক্ষণিকভাবে অভ্যন্তরীণ প্রসারণ) বনাম একক উদ্ধৃতি (কমান্ড এবং ভেরিয়েবলের বিলম্বিত মূল্যায়ন) এর প্রভাবগুলি প্রদর্শন tকরে প্রদত্ত সংজ্ঞাটির প্রসারণটি নোট করুন which t

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