bash - शेल प्रॉम्प्ट लाइन रैपिंग मुद्दा




colors prompt (6)

'shopt -s checkwinsize' साइगविन रैप समस्याओं के लिए भी काम करता है

मैंने ओएस एक्स (10.5.7) टर्मिनल में अपने बैश शेल प्रॉम्प्ट को तोड़ने के लिए कुछ किया है।

यह PS1 है जिसे मैंने कॉन्फ़िगर किया था:

PS1='\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '

जहां तक ​​मैं बता सकता हूं कि मेरे पास सही ढंग से भागने वाले रंग कमांड हैं। हालाँकि जब मैं अपने कमांड हिस्ट्री में ऊपर और नीचे स्क्रॉल करता हूँ तो मुझे कई बार लाइन रैपिंग इश्यू मिल जाते हैं अगर ऐतिहासिक कमांड्स कई लाइनों पर लपेटते हैं।

मैंने निम्नलिखित के लिए अपने संकेतों को सरल बनाया:

PS1='\[\e[1m\]\h:\w\$ \[\e[0m\]'
PS2='> '

और मुझे अभी भी कुछ इस तरह दिखाई देता है:

localhost:~/Library/Application Support/Firefox/Profiles/knpmxpup.Defau
lt/extensions/{1A2D0EC4-75F5-4c91-89C4-3656F6E44B68}$ expocd \{1A2D0EC4-7
5F5-4c91-89C4-3656F6E                                           export PS1="\[
\e[1;32m\]\h\[\e[0m\]:                                          cd Library/Appl
ication\ Support/

मैंने भी \e बजाय \033 की कोशिश की है। मैंने पीएस 2 को जानकारी के लिए वहां शामिल किया है, मैंने इसे इंस्टॉल डिफ़ॉल्ट से नहीं बदला है। अगर मैं पूरी तरह से रंग कोड हटाता हूं तो सब कुछ ठीक काम करता है, कोई विचार?


ऐसा लगता है कि आप सही ढंग से बच गए हैं और अनुक्रमों को संलग्न किया है।

एक वर्कअराउंड मैं वैसे भी इसका उपयोग अंत में एक '\ n' जोड़ने के लिए करता हूं। मैं इसे स्पष्ट करता हूं और रैपिंग मुद्दों के साथ किसी भी समस्या को कम करता हूं। मेरे PS1 का सटीक अंत है:

'\n\[\033[0;30m\]$\[\033[0m\]

एक उत्कृष्ट हाउटो जिसे आप शायद जानते हैं:

बैश प्रॉम्प्ट हाउटो


भविष्य के संदर्भ के लिए, यह मेरा उपयोग है:

export PS1="\[\033[0;31m\][\[email protected]:\w]$\[\033[0m\] "

यह मेरे शेल प्रॉम्प्ट को इस प्रकार प्रदर्शित करेगा:

[[email protected]:~]$

मुझे लाइव और देव साइटों के बीच अंतर करने में मदद करता है।


मैं अब अच्छे प्रभाव के साथ इस PS1 का उपयोग कर रहा हूं:

green=$(tput setaf 2)
blue=$(tput setaf 4)
bold=$(tput bold)
reset=$(tput sgr0)
PS1="\[$green$bold\]\h\[$reset\]:\[$blue$bold\]\w\[$reset\]\$ "

मेरे कमांड इतिहास के माध्यम से स्क्रॉल करना अब लाइन रैप्स को संभालना प्रतीत होता है। हालाँकि इस बीच जब से यह सवाल पूछा गया था मैंने भी अपने OS X को 10.6.3 में अपडेट किया है


यदि आप टाइटल बार ट्रिक "\e]2;titlebar\a" का उपयोग कर रहे हैं "\e]2;titlebar\a" , तो "\e]2;titlebar\a" भी बचना सुनिश्चित करें: "\[\e]2;titlebar\a\]"


यहाँ मेरा है: यह सबसे अच्छा एक है जो मैंने पाया है, लेकिन साइट जहां मुझे मूल रूप से मिला यह एक एस्केप चरित्र को याद कर रहा था, जिससे लाइन रैपिंग मुद्दा हो गया। मैंने इसके साथ छेड़छाड़ की और आखिरकार यह काम कर गया। यह आपके उपयोगकर्ता, पथ और शाखा जानकारी को अच्छे कंट्रास्ट, रंग-वार के साथ दिखाता है।

export PS1='\[\e[1;37m\]\[\e[1;32m\]\u\[\e[0;39m\]:\[\e[1;33m\]\w\[\e[0;39m\]\[\e[1;35m\]$(__git_ps1 " (%s)")\[\e[0;39m\] \[\e[1;37m\]|\[\e[0;39m\]\$'

इसके अलावा, जोड़ें

GIT_PS1_SHOWDIRTYSTATE=true

एक शाखा दिखाने के लिए जब एक शाखा "गंदी" होती है (परिवर्तन होने के लिए मौजूद होता है)

export HISTCONTROL=ignoredups

बैश इतिहास के माध्यम से स्क्रॉल करते समय डुप्लिकेट को अनदेखा करने के लिए भी उपयोगी है।

bind "set completion-ignore-case on" 

मदद भी करता है।

अंततः,

shopt -s checkwinsize

अगर समस्या बनी रहती है तो OSX पर मददगार हो सकता है।





ansi-escape