हर एंट्री पर आप zsh अपडेट में RPROMPT कैसे बनाते हैं?


11

मेरा RPROMPTउपयोग करने के लिए svn जानकारी प्रदर्शित करने के लिए सेट किया गया है vcs_info। यह पढ़ता है RPROMPT=${vcs_info_msg_0_}vcs_infoका उपयोग कर कहा जाता है precmd()। हालाँकि, RPROMPT अद्यतन नहीं करता है जब मैं निर्देशिकाओं को बदलते हैं। यह तभी काम करता है जब मैं फिर से प्रांप्ट आह्वान करता हूं (या तो स्रोत ~ / .zshrc या प्रॉम्प्ट द्वारा) और chdir पर परिवर्तित नहीं होता है, जब तक कि मैं फिर से प्रेषण न करूं। क्या इस व्यवहार को बदलने का कोई तरीका है?

जवाबों:


20

मूल्यांकन में देरी करने के लिए असाइनमेंट पर परिवर्तनीय मूल्य के आसपास एकल उद्धरण डालने का प्रयास करें:

RPROMPT='${vcs_info_msg_0_}'

माइग्रेट होने पर चेक मार्क क्यों चला जाता है?

@ user5383: आपको यह पूछना चाहिए कि meta.unix.stackexchange.com या meta.stackoverflow.com पर। मुझे जवाब नहीं पता (या केवल अस्पष्ट रूप से पता है)।
अगली सूचना तक रोक दिया गया।

3
इसके लिए आवश्यक है कि setopt PROMPT_SUBSTफ़ाइल में पहले हुआ हो। अन्यथा, यह बस शीघ्र ही बाहर गूंज होगा।
निक मेहर्री

1

गतिशील उपनामों को परिभाषित करने के लिए मूल्यांकन में देरी के लिए एकल-उद्धरण का उपयोग करना। यहां एक उपनाम है, tजिसका उपयोग मौजूदा ssh एजेंट प्रक्रिया में एक नया शेल संलग्न करने के लिए किया जाता है, जिसे एक उपनाम के साथ शुरू किया गया था, जो 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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.