क्या बैश को अधिक TAB के अनुकूल बनाने का एक तरीका है?


31

मैं अपने मैक और मेरे साइबर शेल के रूप में बैश का उपयोग करता हूं। कुल मिलाकर, मैं इससे काफी प्रसन्न हूं।

हालांकि मेरी एक शिकायत यह है कि इसका TAB पूरा होना विंडोज कमांड लाइन TAB पूरा होने जितना अच्छा नहीं है।

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

मैं निश्चित रूप से पसंद करता हूं कि कमांड लाइन पर विंडोज़ संभावित फ़ाइलों के माध्यम से कैसे चक्र करेगा।

क्या इस संबंध में विंडोज कमांड लाइन के समान संचालित करने के लिए बैश पाने का एक तरीका है?

अगर वहाँ नहीं है (मैं गोले को स्विच नहीं करना चाहता), तो क्या मैं टीएबी को बाश में पूरा करने के बारे में कुछ याद कर रहा हूं? क्या इसका उपयोग करने का एक अधिक कुशल तरीका है?

जवाबों:


42

'चक्र को संभव पूर्णताओं के माध्यम से' व्यवहार में लाने के लिए, निम्नलिखित को अपने .bashrc फ़ाइल में उपयुक्त स्थान पर कॉपी करें:

[[ $- = *i* ]] && bind TAB:menu-complete

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


OSx टर्मिनल के लिए यह करने की प्रक्रिया क्या है?
एलेक्स

2
@ एलेक्स: आप फ़ाइल .bashrcको अपने होम डायरेक्टरी में एडिट करते हैं ताकि उसमें निर्दिष्ट लाइन हो। यदि आपकी .bash_profileफ़ाइल (उसी निर्देशिका में) की तरह एक पंक्ति भी नहीं है source ~/.bashrc, तो आपको ऐसी पंक्ति को शामिल करने के लिए इसे संपादित भी करना चाहिए। नई टर्मिनल विंडो में सेटिंग सक्रिय होगी । यदि आपके पास पसंदीदा संपादक नहीं है, तो आप कमांड के साथ टेक्स्टएडिट में फाइल खोल सकते हैं open -e ~/.bashrc; यदि फ़ाइल अभी तक मौजूद नहीं है, तो आपको इसे पहले (जैसे) कमांड के साथ बनाना होगा touch ~/.bashrc
क्रिस जॉन्सन

1
@ एलेक्स, बैश 10.3 पर और बाद में 10.7 (लायन) सहित डिफ़ॉल्ट शेल है। सबसे पहले echo $SHELL। वह आपके उपयोगकर्ता खाते के लिए चयनित शेल होगा। यदि वह नहीं है जो आप चाहते हैं, तो आपको अपना शेल chpass -s /bin/bash(या जो भी शेल आप चाहते हैं) के साथ बदलना होगा । यदि $ SHELL ठीक है, तो टर्मिनल> प्राथमिकताएँ> स्टार्टअप> शेल के साथ खोलें: और टर्मिनल> वरीयताएँ> रूपरेखाएँ> प्रोफ़ाइल> शेल> चेक करें कि डिफ़ॉल्ट उपयोगकर्ता शेल को कस्टम कमांड के साथ ओवरराइड किया गया है या नहीं।
क्रिस पेज

5
क्या किसी को कोई भी विचार है कि मुझे Shift + Tab के साथ एक विकल्प वापस जाने के लिए क्या बाध्य करना चाहिए?
पीपी

3
@ अपने में .bashrc:bind '"\e[Z":menu-complete-backward'
तिजोरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.