बाश या zsh में पूरा टैब छोड़ दिया


2

जब मैं बैश या zsh में पूरा होने वाले मानक टैब का उपयोग करता हूं, तो मैं फ़ाइल नाम या पथ का पहला भाग टाइप करता हूं, फिर शब्द को पूरा करने के लिए हिट करता हूं। यह तब तक अच्छी तरह से काम करता है जब तक कि मैं फ़ाइलों से भरी निर्देशिका में नहीं होता जहाँ फ़ाइल नाम में सभी भिन्नताएँ शब्द के अंत में होती हैं, उदाहरण के लिए समय-मोहरहित फ़ाइलों से भरी एक निर्देशिका जो सभी एक ही उपसर्ग के साथ शुरू होती है:

foo-20120701124501.log
foo-20120701124531.log
foo-20120701124601.log
foo-20120701124631.log
foo-20120701124701.log
foo-20120701124731.log

इस स्थिति में, यदि मुझे टाइप करें तो मुझे foo<tab>मिल जाएगा foo-20120701124- मैं फिर से टैब कर सकता हूं, और सभी फाइलें देख सकता हूं ... मुझे एक अद्वितीय फ़ाइल नाम प्राप्त करने के लिए अगले 3 वर्णों में लिखना होगा।

मैं सोच रहा था कि उदाहरण के लिए टाइप करने का कोई तरीका है 4731.logऔर फिर शब्द की पूरी शुरुआत। मैं अनुमान लगा रहा हूं कि यह बैश में मुश्किल होगा, क्योंकि बैश पूरा होने का उपयोग करता है $COMP_CWORDऔर $COMP_KEYइसके प्रोग्राम पूरा होने के लिए, और जिस तरह से मैं इसे पढ़ रहा हूं, मुझे नहीं लगता कि वे बाएं शब्द को पूरा करने की अनुमति देंगे। मुझे पता नहीं है कि मैन पेजों में कहां से शुरू किया जाए, यह जानने के लिए zsh के अंदर पूरा करने के बारे में पर्याप्त नहीं है।

जवाबों:


2

यह केवल तभी काम करेगा जब टैब हिट करने से पहले एक प्रमुख कमांड हो। संभावना यह नहीं है कि आप क्या देख रहे हैं बल्कि एकमात्र मैं वांछित परिणाम प्राप्त कर सकता था। नीचे दिया गया उदाहरण आपके मामले में काम करना चाहिए। आपको बस * 4731.log और हिट टैब 1 के अंत में होना चाहिए। यदि यह अद्वितीय है तो यह स्वतः पूर्ण होगा।

ls *4731.log

हां, एक आकर्षण की तरह काम किया। मैंने फ़ाइलों की एक श्रृंखला का उपयोग करके उत्पन्न किया for i in {1..10}; do touch $(date -d "$i days $RANDOM seconds ago" +%Y%m%d%H%M%S); done... इसने फ़ाइलों की एक श्रृंखला बनाई जो इस तरह दिखती थी 20120915165427 20120916121328 20120917180952। यदि मैं उपयोग ls *09<tab>करता हूं , तो यह विस्तार नहीं करता है, लेकिन *09*<tab>करता है।
बार्टन चित्तेंडेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.