2012-05-15 19 views
13

यह एक अजीब बात है कि मैं Google के साथ एक अच्छा जवाब नहीं ढूंढ पा रहा हूं (बेशक हमेशा संभावना है कि मैं उस पर असफल हूं)। मेरे बैश प्रॉम्प्ट पर, अगर मैं प्रॉम्प्ट का एक हिस्सा रंगता हूं, जब मैं पिछले कमांड पर जाने के लिए 'अप' दबाता हूं, तो मैं लाइन की शुरुआत में कुछ निश्चित वर्णों (विशेष रूप से 31) के बाद नहीं जा सकता ।बैश प्रॉम्प्ट इतिहास समस्या

मेरे वर्तमान बैश शीघ्र यह है: (रंग मेरी .bashrc में पहले परिभाषित कर रहे हैं)

PS1="[\[email protected]$cyan\h$NC \w] " 

लेकिन अगर मैं इसे इस बदलें:

PS1="[\[email protected]\h \w] " 

यह अब मुझे जाने से रोकता है लाइन की शुरुआत के लिए।

अजीब हिस्सा, दृष्टिहीन है, जब मैं रेखा की शुरुआत में जाने के लिए घर पर जाता हूं (या तीर कुंजियों का उपयोग करता हूं) यह स्ट्रिंग में 11 वर्णों को रोकता है, लेकिन अगर मैं इसे वहां से संपादित करता हूं, तो यह संपादित करता है लाइन की शुरुआत से शुरू।

क्या किसी को पता है कि यह क्यों हो रहा है? मैं अपने प्रॉम्प्ट में रंगों का उपयोग करना चाहता हूं क्योंकि मैं सर्वर प्रशासन करता हूं और रंग यह है कि मैं अपने बक्से को एक नज़र में कैसे अलग करता हूं। इस तरह के रंग कोड के रूप में

उत्तर

25

गैर मुद्रण दृश्यों \[ और \] से घिरा होना चाहिए, इसलिए उनके लंबाई शीघ्र की लंबाई के हिस्से के रूप में नहीं गिना जाता।

+1

[उदाहरण] (https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

यह बिल्कुल ठीक था, धन्यवाद! –

+0

मुझे महीनों के लिए यह कष्टप्रद समस्या है। धन्यवाद! +1 – jweyrich