रिवर्स खोज का उपयोग करते समय बैश इतिहास के अंत में वापस जाएं?


12

मैं काफी लंबा बैश इतिहास रखता हूं और कभी-कभी जब मैं बैश रिवर्स सर्च फंक्शन ( Ctrl+ r) के साथ कुछ खोजता हूं तो मैं सर्च हिस्ट्री की शुरुआत में समाप्त हो जाता हूं और मुझे अभी भी वह नहीं मिला जिसकी मुझे जरूरत थी और फिर मैं अंत तक वापस जाना चाहता हूं इतिहास फ़ाइल के। एक विकल्प आगे के खोज फ़ंक्शन ( Ctrl+ s) का उपयोग करना है जो इतिहास के अंत के करीब जाता है या निष्पादित करता है #, लेकिन क्या बैश इतिहास के अंत में सीधे जाने के लिए एक कीबोर्ड शॉर्टकट भी है?


2
historyआपको दिखाए गए सभी बैश कमांड
दिखाएंगे

जवाबों:


6

end-of-historyडिफ़ॉल्ट रूप से मैप करने के लिए M- द्वारा रीडलाइन फ़ंक्शन है , >लेकिन यदि रिवर्स खोज के दौरान इसका उपयोग किया जाता है, तो यह रिवर्स सर्च प्रॉम्प्ट से बाहर निकलता है।

एक संभावित समाधान / चाल

स्ट्रिंग खोज प्रारंभ करें

इसके बजाय, रिवर्स खोज का उपयोग करने के लिए, आप उपयोग कर सकते हैं history-search-backwardऔर history-search-forward(डिफ़ॉल्ट अनमैप्ड), उन्हें मैप करने के लिए up/down(आपके लिए बहुत उपयोगी) .inputrc:

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

इसलिए, जब आप टाइप कर लेते हैं, तो आप खोज दबाने up ( Ctrl+ के बजाय R) को उल्टा कर सकते हैं , और जब आप इतिहास के अंत में लौटना चाहते हैं तो आप end-of-historyदबाकर फ़ंक्शन का उपयोग कर सकते हैं ( M- >)

इस तरह "खोज स्ट्रिंग को एक इतिहास पंक्ति की शुरुआत में मेल खाना चाहिए ", इसलिए, यदि आप खोज करते हैं ls -ltr, तो आपको टाइप करना होगा lsऔर फिर  upकुंजी दबाएं।

पदार्थ खोज

यदि आप चाहते हैं कि " खोज स्ट्रिंग इतिहास रेखा में कहीं भी मेल खा सके, तो आपको उपयोग करना होगा history-substring-search-forward और history-substring-search-backward:

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

इस तरह, यदि आप खोज करते हैं ls -ltr, तो आप प्रेस करने से पहले टाइप कर सकते हैं ls, लेकिन यह भी ।ltrup

संदर्भ: बैश संदर्भ मैनुअल - इतिहास के लिए कमांड

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