2010-06-21 6 views
10

मैंने हाल ही में टीसीएस से बैश तक बेहद लंबे समय तक स्विच किया है। एक कमांड टाइप करना शुरू करें और फिर ESC मारा + पी (मैं वास्तव में बराबर Ctrl- [पी आसान टाइप करने के लिए होता है) और यह करने के लिए कूदता है: केवल एक चीज मैं याद आती है tcsh के ESC + पी सुविधा है आपके इतिहास में सबसे हालिया कमांड जो आपने अभी तक टाइप किया है उसके साथ शुरू होता है।बैश के टीसीएस के ईएससी-पी के बराबर है जो आपने अभी तक टाइप किए गए कमांड पर कूदने के लिए

शायद सबसे अच्छा जवाब सिर्फ करने के लिए पार्टी के Ctrl +आर इस्तेमाल किया पाने के लिए, लेकिन अभी तक मैं इसे के रूप में ज्यादा पसंद नहीं है है। मैं अक्सर एक कमांड लिखना शुरू करता हूं और फिर यह मेरे लिए होता है कि मैंने इसे पहले जारी किया है। tcsh के सुविधा के साथ मैं तो ESC + पी कर सकता है + दर्ज दोबारा जारी करने के लिए यह। यह इतना तेज़ है कि मैं आमतौर पर 2 कमांड से पहले किसी भी चीज़ के लिए अप-तीर का उपयोग नहीं करता था।

मैं कहाँ पाया यह विशेष रूप से अच्छा का एक उदाहरण: लांग आदेशों अक्सर एक बिंदु के साथ शुरू करते हैं, क्योंकि वे प्रपत्र

./myprogram.pl -lots -of -args -and -switches 

tcsh में मैं उस तरह कोई आदेश जारी करेगा कर रहे हैं, तो शायद ls , कम, पूंछ, जो कुछ भी, और फिर लंबे आदेश को फिर से जारी करने के लिए, 4 कुंजी: डॉट, भागने, पी, दर्ज करें।

मैं बैश में ऐसा कैसे कर सकता हूं? या, इसे ठोस बनाने के लिए, "डॉट के साथ शुरू होने वाले अंतिम आदेश को दोहराएं" कहने के लिए बैश में कीस्ट्रोक की सबसे कम संख्या क्या है? क्या यह टीसीएस के 4 से मेल खाता है या हरा सकता है?

+0

मुझे इसके विपरीत की आवश्यकता है ताकि मैं टीसीएच पर्यावरण बना सकूं जो मैं काम पर काम कर रहा हूं। अब मुझे पता है: \ ep। और मैं इसे बाइंडकी का उपयोग वापस शिफ्ट-अप-तीर पर सेट करने के लिए कर सकता हूं जैसा कि मैंने उपयोग किया है। धन्यवाद :)। – Chinasaur

+0

यहाँ समाधान का प्रयास करें: http://superuser.com/questions/351543/bashs-equivalent-of-tcshs-escp मेरे लिए काम किया। –

+0

मेरे पास बैश में 'esc-p' तक पहुंच है, हालांकि आपको इसे पहले उपयोग करने के बारे में सोचना होगा या आपको डेटा फिर से टाइप करना होगा ... –

उत्तर

9

अपने ~/.inputrc फाइल करने के लिए इस जोड़ें:

"\e[5~": history-search-backward 
"\e[6~": history-search-forward 

यह PageUp अधिनियम tcsh के Esc + पी और PageDown सूची के माध्यम से आगे जाना होगा की तरह कर देगा।

आप इसके बजाय \ep बांध सकते हैं। यदि आप पेजअप/पेजडाउन का उपयोग करते हैं, तो आपको यह देखने की आवश्यकता हो सकती है कि आपका कीबोर्ड/टर्मिनल किस चरित्र अनुक्रम का उत्पादन करता है। बस Ctrl प्रेस + वी तो PageUp और आप ^[[5~ देखेंगे अगर यह \e[5~ तरह ही है।

2

ठीक है, आप

!. 

(दर्ज सहित) कौन से तीन वर्णों की है कर सकते हैं। बेशक, सामान्य मामले में, आप अपनी पसंद के अद्वितीय पहचान उपसर्ग के साथ डॉट को प्रतिस्थापित कर सकते हैं।

+1

ओह, वाह, ठीक है, धन्यवाद! लेकिन मुझे वास्तव में इसे टीसीएसएच संस्करण जितना पसंद नहीं है क्योंकि (ए) इसे कमांड की शुरूआत (या निश्चित रूप से ctrl-a!) की बजाय बैंग से शुरू करने की पूर्व शर्त की आवश्यकता होती है, और (बी) तुरंत निष्पादित करता है। मैं उस आदेश पर कूदना चाहता हूं लेकिन इसे संपादित करने का मौका है या यह सुनिश्चित करना है कि यह वही है जो मैं चाहता था। हालांकि आपने सवाल के ठोस संस्करण को नाखुश किया था! (ध्यान दें कि यह 3 अक्षर है, 2 नहीं, क्योंकि मैं अंतिम प्रविष्टि भी शामिल था।) – dreeves

+0

@dreeves - हाँ, आप सही हैं - यह पूर्व-विचार की समस्या को संभाल नहीं लेता है, केवल आपके कंक्रीट रीफ्रिसिंग। ऐसा लगता है कि इसके लिए आपको डेनिस विलियमसन से अच्छा जवाब मिला है। मैंने आपके विवरण से मेल खाने के लिए एंटर जोड़ा है। –

8

मैं आपके जैसे ही नाव में था, जिसे टीसीएसएच से बैश करने की आवश्यकता है।

मैंने अभी एक नई ~/.inputrc फ़ाइल बनाई है और सबकुछ बढ़िया काम करता है!

 
$ cat ~/.inputrc 
"\ep": history-search-backward 
"\en": history-search-forward 
+1

यह करीब है लेकिन काफी नहीं है क्योंकि tcsh कर्सर को लाइन के अंत में ले जाता है लेकिन बैश/रीडलाइन इसे जगह में छोड़ देता है। – George

1

व्यक्तिगत रूप से मैं ctrl-r पसंद करता हूं - यह इतिहास के माध्यम से इंटरैक्टिव खोज है - इसे जांचें, शायद आपको यह पसंद आएगा। बाद में ctrl-r प्रेस अगले मैच पर कूदें।

+0

मैं निश्चित रूप से उस बिंदु पर राजी होने के लिए तैयार हूं। मेरे "दोहराने वाले अंतिम आदेश को दोहराएं" उदाहरण के लिए ctrl-r का उपयोग करके कितने कीस्ट्रोक की आवश्यकता है? (मैं सोच रहा हूं कि तब से कई आदेशों में * डॉट्स शामिल होंगे क्योंकि यह ctrl-r के लिए एक गैर-तिमाही है, लेकिन शायद एक चाल है जिसे मैं नहीं जानता।) – dreeves

संबंधित मुद्दे