2013-12-11 3 views
7

क्या मैं प्रत्येक कमांड के बाद एक नई लाइन दिखाने के लिए अपना प्रॉम्प्ट कॉन्फ़िगर कर सकता हूं?zsh नया लाइन प्रॉम्प्ट

आपको एक उदाहरण देने के लिए। निम्नलिखित स्क्रीनशॉट में मैंने cat .zshrc चलाया। मैं कमांड की अंतिम आउटपुट लाइन, . ~/.zsh_aliases, और ~ $ के बीच एक नई लाइन बनाना चाहता हूं।

enter image description here

उत्तर

17

संपादित ~/.zshrc और लाइन precmd() { print "" } जोड़ें। PROMPT प्रस्तुत किए जाने से पहले यह बस एक खाली रेखा मुद्रित करेगा।

function precmd { 
    if [[ "$NEW_LINE" = true ]] then 
     if [[ "${ADD_NEW_LINE}" = true ]] then 
      PROMPT=$'\n'"${PROMPT}" 
      ADD_NEW_LINE=false 
     fi 
    else 
     PROMPT="${PROMPT}" 
     NEW_LINE=true 
     ADD_NEW_LINE=true 
    fi 
} 

आशा है कि यह

+0

धन्यवाद! सही समाधान – orschiro

+0

बढ़िया! धन्यवाद: डी – htmldrum

+6

यह काम करता है, मुद्दा यह है कि यह प्रत्येक प्रॉम्प्ट से पहले एक नई लाइन प्रिंट करता है, भले ही आप खोल शुरू करते हैं! इस के आसपास किसी भी तरह ?? – Sethen

2

मैं जानता हूँ कि यह एक सा पुराना है, लेकिन मैं एक रास्ता मिल गया, भले ही वह बहुत साफ नहीं है, मैं सिर्फ यह साझा करना चाहते थे बस ~/.zshrc में एक कस्टम प्रॉम्प्ट सेट करना जिसमें एक न्यूलाइन वर्ण शामिल है। उदाहरण के लिए:

autoload -Uz promptinit 
promptinit 

PROMPT=" 
%[email protected]%m:%~ $ " 
2

एक और तरीका है के द्वारा होता है में मदद करता है:

+0

इस तरह मैंने प्रत्येक नए प्रॉम्प्ट से पहले नई लाइनों से बचने के लिए मेरा काम समाप्त कर दिया। – Sethen