जवाबों:
एक समान प्रभाव प्राप्त करने के लिए bash, जिसमें शामिल है ..., कोशिश करें:
%(4~|.../%3~|%~)
यह जांचता है, यदि पथ कम से कम 4 तत्व लंबा है ( %(4~|true|false)) और, यदि सही है, तो अंतिम 3 तत्वों ( .../%3~) के साथ कुछ बिंदु प्रिंट करता है , अन्यथा पूर्ण पथ मुद्रित होता है %~।
मैंने देखा है कि bashउदाहरण के लिए, घर की निर्देशिका में पथ को छोटा करने के लिए लगता है:
~/.../some/long/path
एक समान प्रभाव के लिए, आप उपयोग करना चाह सकते हैं:
%(5~|%-1~/…/%3~|%4~)
यह जाँचता है, कि क्या रास्ता लंबा है, 5 तत्व, और उस स्थिति में पहला तत्व ( %-1~), कुछ डॉट्स ( /…/) और अंतिम 3 तत्व प्रिंट करता है। यह बिल्कुल पथ के समान नहीं है, जो कि आपके घर की निर्देशिका में नहीं हैं, शुरुआत में भी पहला तत्व होगा, जबकि bashउस मामले में बस डॉट्स प्रिंट करता है। इसलिए
/this/…/some/silly/path
के बजाय
.../some/silly/path
लेकिन यह जरूरी नहीं कि बुरी चीज हो।
PROMPTपर्यावरण चर के साथ अपने में करना चाहते हैं .zprofile, जैसे:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrcऔर वास्तव में exportकिसी भी शेल आंतरिक मापदंडों की आवश्यकता नहीं है PROMPT।
यहां दिए गए अन्य उत्तरों के अलावा, आप भी उपयोग कर सकते हैं %< किसी दिए गए वर्णों के पथ को छोटा लिए । मुझे यह उपयोग करने के लिए बेहतर लगता है %<n>d, क्योंकि व्यक्तिगत पथ तत्व स्पष्ट रूप से अपने आप में काफी लंबे हो सकते हैं। %<पैदावार का उपयोग करके अधिक पूर्वानुमानित अधिकतम शीघ्र लंबाई।
उदाहरण के लिए, टिल्ड विस्तार के साथ पथ तत्व को छोड़ दिया%~ 15 वर्णों तक ) के , हटाए गए वर्णों को बदलना .., आप कुछ इस तरह कर सकते हैं:
PROMPT='%n@%m:%15<..<%~%<<%# '
यह पृष्ठ के अंत में, प्रॉम्प्ट विस्तार के तहत Zsh मैनुअल में प्रलेखित है ।
आप %3d शीघ्र विस्तार का उपयोग कर सकते हैं :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
सामान्य रूप यह है %d, यदि कोई भी धनात्मक पूर्णांक अनुसरण dकरता है , तो वर्तमान पथ को दिखाने के लिए अनुगामी घटक निर्दिष्ट करता है, शून्य माध्य पूरे पथ को दिखाता है, ऋणात्मक पूर्णांक का अर्थ है कि अग्रणी पथ दिखाने के लिए:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html या देखेंman zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
तो कुछ समान पाने के लिए PROMPT_DIRTRIM=3, आप उपयोग कर सकते हैं %3dया %3~, जैसे
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/bके रूप में.../a/bके बजाय~/a/b। जिसे ठीक करने के लिए, आप उपयोग कर सकते हैं%(5~|…/%3~|%~)।