मैं अन्य बातों के अलावा, लिनक्स मिंट 14 पर 4.2.37 मार रहा हूं।
जब मैं टाइप करके किसी पर्यावरण चर का नाम स्वत: पूर्ण करता है Tab, तो यह एक स्थान के बाद चर के नाम पर फैलता है।
यदि चर का मान निर्देशिका नाम होता है, तो मैं चाहता हूं कि इसके बाद चर के नाम का विस्तार हो /।
उदाहरण के लिए, यदि मैं टाइप करता हूं:
$ ls $HOM<tab>
इसका विस्तार होता है:
$ ls $HOME _
जहां _कर्सर का स्थान चिह्नित करता है। समस्या यह है कि मैं तब आम तौर पर अपने घर निर्देशिका के तहत कुछ फ़ाइल या निर्देशिका का नाम लिखना जारी रखना चाहता हूं, जिसका मतलब है कि मुझे टाइप करना होगा backspaceऔर फिर /।
इसलिए मैं चाहता हूं कि ऊपर का विस्तार हो:
$ ls $HOME/_
जब मैंने संपूर्ण चर नाम टाइप किया है तो वही बात होती है; के बाद ls $HOME, tabएक स्थान जोड़ता है, और मैं चाहता हूं कि इसे जोड़ा जाए /।
(और निश्चित रूप से मैं यह नहीं जोड़ना चाहता /कि चर का मान निर्देशिका नाम नहीं है।)
क्या कोई तरीका है जो मैं बैश को बता सकता हूं कि मैं जिस तरह से व्यवहार करना चाहता हूं, या तो बैश कमांड के माध्यम से या मेरे अपडेट करने से $HOME/.inputrc?
नोट: मैं विशेष रूप tabसे जिस तरह से मैं चाहता हूं, वह व्यवहार करने का एक तरीका ढूंढ रहा हूं। विभिन्न कीस्ट्रोक्स के साथ समान व्यवहार को प्राप्त करने के तरीके दिलचस्प होंगे, लेकिन मेरे सवाल का जवाब नहीं देंगे।
(मैंने /etc/profile.d/bash_completion.shअपने सिस्टम पर अक्षम कर दिया है क्योंकि यह खराब तरीके से इंटरैक्ट set -o nounsetकरता है। एक त्वरित प्रयोग बताता है कि यह संभवतः मेरे प्रश्न के लिए प्रासंगिक नहीं है)।
संयोग से, tcsh ऐसा करता है: एक पर्यावरण चर दिया जाता है $FOOBAR, टाइपिंग $FOOBA<tab>फैलता है $FOOBAR/अगर यह एक निर्देशिका को संदर्भित करता है, $FOOBAR(एक स्थान के साथ) यदि यह नहीं करता है। नहीं, यह मुझे वापस tcsh में जाने के लिए राजी करने के लिए पर्याप्त नहीं है। zsh यह भी करता है।