क्यों कुछ (अक्सर लंबे) कमांड को बैश & zsh में दिखाया जाता है?


10

कई बार जब मैं बैश या zsh में एक लंबी कमांड दर्ज करता हूं (ये केवल दो गोले हैं जो मैं सकारात्मक हूं, मैंने इसे देखा है) कर्सर मैं जिस स्ट्रिंग में प्रवेश कर रहा हूं, उसके बीच में कहीं पर भी है, क्या कोई समझा सकता है कि यह क्यों है? और अगर इस बारे में कुछ किया जा सकता है?

मैंने देखा है कि अक्सर ऐसा होता है जब मैं अपने शेल के इतिहास को ब्राउज़ करता हूं (तीर कुंजी का उपयोग करके), जब मैं एक लंबी प्रविष्टि का सामना करता हूं, तो पिछली प्रविष्टि के साथ लंबी, नई प्रविष्टि मिल जाएगी, जो पाठ को विकृत कर देगा।

मेरे पास छोटे तार के साथ एक उदाहरण है, जिसे मैंने अभी देखा है:

इतिहास में शामिल है:

mkdir sune1
mkdir sune2

यदि मैं नेविगेट करता हूं mkdir sune1, और फिर mkdir sune2मैं अपनी कमांड लाइन होने की उम्मीद करता हूं mkdir sune2(क्योंकि यह वही है जो मैंने अब नेविगेट किया है) - लेकिन इसके बजाय मुझे मिलता है mkdir1sune2

मैंने वर्षों से इस पर ध्यान दिया है, लेकिन इसे कभी भी मुझे बहुत परेशान न करें, लेकिन मुझे लगता है कि यह बदलाव का समय है! तो, कोई विचार?

जवाबों:


8

आपका शीघ्र स्ट्रिंग शायद गलत तरीके से नॉनप्रिटिंग वर्णों से बच गया है। आप अपने प्रॉम्प्ट में रंग परिवर्तन ऐसा कुछ है, तो आप लगाने की जरूरत है \[और \]और अद्यतन यह अन्यथा यह miscalculates जहां वास्तविक आदेश स्क्रीन पर मौजूद है, - टर्मिनल से बच दृश्यों के आसपास बैश बता सकते हैं इतना है कि वे नहीं स्क्रीन पर स्थान लेते हैं गलत जगह पर। इस अनुभाग को TLDP से देखें । Zsh में, एस्केप सिक्वेंस के आसपास %{और %}आसपास।


मेरे पास मेरे संकेत में रंग हैं, मैं उनसे बचने की कोशिश करूंगा, या उन्हें हटाकर देखूंगा कि क्या मदद करता है। धन्यवाद!
योनातन

ज़ीश के रंग मॉड्यूल का उपयोग करने पर विचार करें। यह त्रुटियों से बचना चाहिए stackoverflow.com/questions/6159856/…
फ्रांसिस्को
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.