OS X पर CTRL-r क्यों अजीब तरीके से कार्य करता है (केवल एक कमांड का हिस्सा दिखा रहा है)


10

Ctrl+ पहले चलाए गए आदेशों के लिए rआपकी खोज करने के लिए एक महान उपकरण है .bash_history

हालाँकि, जब मैं इसे अपने OS X Terminal.app में उपयोग करता हूं तो मुझे अजीब व्यवहार दिखाई देता है, और मैं सोच रहा था कि क्या कोई और एक ही चीज देखता है या इसे ठीक करना जानता है।

  1. Ctrl+r
  2. कुछ इस तरह टाइप करें find
  3. ओह कूल, देखो ... यह वह आज्ञा है जो मैं चाहता था find . -exec grep -q "hello world" '{}' \; -print
  4. मैं उस कमांड को चलाना चाहता हूं लेकिन हैलो वर्ल्ड को किसी और चीज में बदल देता हूं।
  5. तो मैंने मारा या
  6. अब कमांड कमांड लाइन पर SORTA है, लेकिन यह हमेशा कमांड के कुछ ट्रैक्ट किए गए संस्करण जैसा दिखता है, जैसे:, -q "blog_posts_by" '{}' \; -printजहां पूरा कमांड होता है, और मैं कर्सर कुंजियों का उपयोग लाइन पर घूमने के लिए कर सकता हूं, लेकिन सभी में नहीं यह छपा है। लाइन पर जो दिखाया गया है, उसके बीच एक डिस्कनेक्ट है और टर्मिनल वास्तव में सोचता है कि मैं संपादन कर रहा हूं।

क्या किसी के पास कोई सुराग है कि ऐसा क्यों हो सकता है? इसके लिए जाले खोजना आसान घटना नहीं है।


क्या यह केवल लंबी अवधि के लिए आपके विंडो की चौड़ाई पर होता है?
एस्सोबी

आप टर्मिनल का कौन सा संस्करण .App/OSX आप BTW चला रहे हैं? बैश संस्करण? क्या आप हमें अपना .bashrc भी दिखा सकते हैं?
एस्सोबी

जवाबों:


14

संभवतः आपके प्रॉम्प्ट में रंगों के लिए एस्केप सीक्वेंस हैं जो ठीक से सीमांकित नहीं हैं। वे में संलग्न करने की आवश्यकता है \[और \]

PS1='\[\033[1;36m\]\u\[\033[0m\]@\[\033[1;34m\]\h\[\033[0m\]\$ `

गैर-मुद्रण वर्ण अनुक्रमों की लंबाई को प्रॉम्प्ट की लंबाई में शामिल नहीं किया जाता है जब वे इस प्रकार संलग्न होते हैं और पिछले कमांड की स्थिति को लपेटते समय उचित प्रदर्शन के लिए गणना करने की आवश्यकता होती है।


ठीक है, मुझे कुछ और समस्याएं थीं, जो कि इस StackOverflow थ्रेड पर उत्तरदाता द्वारा हल की गईं - stackoverflow.com/questions/35563/…
bryan kennedy

यह प्रॉम्प्ट में नई सुर्खियों में भी लागू होता है। मेरे पास एक हिचकोले का नियंत्रण अनुक्रम था क्योंकि यह शुरुआत में था PS1, लेकिन भीतर की नई लाइन के बाद फिर से नहीं।
वाल्फ

0

यह उस तरह से हो सकता है जिस तरह से आपके टर्मिनल पर भागने की चाबियाँ कॉन्फ़िगर की गई हैं, जो मैं आमतौर पर करता हूं वह iTerm या Terminal.app पर बाएं या दाएं तीर का उपयोग करता है क्योंकि मैं तुरंत रिटर्न मारने का प्रशंसक नहीं हूं, क्या यह आपके लिए काम करता है ?


0

इस समस्या का एक अन्य संभावित कारण गलत TERMमूल्य है। उदाहरण के लिए, मेरे साथ ऐसा तब हुआ जब मैं अपने PS1 में रंगों का उपयोग कर रहा था, लेकिन मैं TERMइसके लिए तैयार था xterm। मैंने इसे बदल दिया xterm-256colorऔर फिर CTRL-r ने फिर से सही तरीके से काम करना शुरू कर दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.