2009-07-11 11 views
19

क्या कोई कमांड लाइन खोल या खोल अनुकूलन है जो emacs-style ido फ़ाइल ढूंढता है? Emacs में, मैं C-x C-f और (ido-mode t) का उपयोग कर निर्देशिका में अत्यधिक तेज़ी से नेविगेट कर सकता हूं।Emacs ido-style shell

आदर्श रूप से, मैं ऐसे समाधान की तलाश में हूं जिसका उपयोग इमैक के बाहर किया जा सके। हालांकि मैं एशेल बफर के भीतर निर्देशिकाओं को त्वरित रूप से बदलने के लिए एक रास्ता खोलूंगा।

+0

मैं अक्सर Ido-मोड की तरह व्यवहार और अधिक अनुप्रयोगों की कामना की है। –

+7

क्यों कभी emacs छोड़ दिया? :) eshell? – seth

+0

उन्होंने कहा कि वह eshell का उपयोग करता है। मैंने ido स्रोत कोड पढ़ा है, और यह वास्तव में आसानी से eshell से उपयोग करने के लिए पर्याप्त रूप से फैक्टर नहीं है। इसलिए, अगर वह उस मार्ग को चुनता है, तो उसे ido को फिर से सक्रिय करने की आवश्यकता होगी और फिर उसे रोकने के लिए बाध्य होना होगा। – jrockway

उत्तर

19

जब से मैं भी कुछ इस तरह करना चाहता था, मैं एक bash पूरा होने समारोह के रूप में इसे लागू करने की कोशिश की। जाहिर है इसका मतलब है। आपको बैश का उपयोग करना होगा।

यह केवल हल्के से परीक्षण किया जाता है, इसलिए कोशिश करते हैं और बग की रिपोर्ट/टिप्पणी करने के लिए संकोच न करें।

http://pgas.freeshell.org/shell/bash-ido

+2

बहुत बढ़िया काम! इसे गिटूब जैसे कुछ पर डालने का कोई विचार? – zpinter

+1

बहुत प्रभावशाली! – blais

0

मुझे पता है कि कुछ टर्मिनल एमुलेटर समर्थन एक्सटेंशन, उदाहरण के लिए आरएक्सवीटी-यूनिकोड पर्ल स्क्रिप्ट के साथ बढ़ाया जा सकता है। मुझे यकीन नहीं है क्योंकि मैंने कभी भी एक एक्सटेंशन खुद लिखा नहीं है, लेकिन शायद आप जो चाहते हैं वह इस तरह से करने योग्य है।

यदि आप urxvt के लिए कुछ पर्ल स्क्रिप्ट्स को देखना चाहते हैं तो डेबियन पर डिफ़ॉल्ट urxvt इंस्टॉल के साथ/usr/lib/urxvt/perl में कुछ उदाहरण हैं।

+1

समस्या यह है कि टर्मिनल एमुलेटर और खोल को एक दूसरे के बारे में पता नहीं हैं। प्रॉम्प्ट पार्सिंग के आसपास कुछ हैक किया जा सकता है, लेकिन यह एक हैक है और असफल होने की संभावना है। (में ssh'd जा रहा है पर विचार करें टर्मिनल एमुलेटर अपने स्थानीय फाइल सिस्टम देखता है, लेकिन खोल दूरस्थ फाइल सिस्टम देखता है भ्रम और गलत परिणाम शुरू करते हैं ...।।) – jrockway

2

बैश में एक पर्यावरण चर है जिसे सीडीपीएटीएच कहा जाता है जिसमें सीडी कमांड का उपयोग करते समय खोजने के लिए निर्देशिकाओं की एक सूची हो सकती है। साथ ही, बैश मैनुअल के "प्रोग्राम करने योग्य समापन" और "रीडलाइन" अनुभाग देखें। आपको कुछ ऐसा करने में सक्षम होना चाहिए जो आपके लिए काम करता है।

3

जेड-शैल आज़माएं। यह बैश की तुलना में काफी बेहतर पूरा है। मुझे स्वीकार करना होगा कि मैंने थोड़ी देर के लिए इसका इस्तेमाल नहीं किया है और बैश के साथ फंस गया है क्योंकि यह हमेशा उपलब्ध है।

0

यदि आप एशेल या इसी तरह के आईडीओ को पूरा करना चाहते हैं, तो निर्देशिका को पढ़ने के लिए ido का उपयोग करने वाले फ़ंक्शन को लिखना सबसे अच्छा हो सकता है, फिर उस निर्देशिका में सीडी को शेल बफर में आदेश डालें। मैं खुद को एशेल का उपयोग नहीं करता, इसलिए मैं इस फ़ंक्शन को वास्तव में लिखने के तरीके पर टिप्पणी नहीं कर सका, लेकिन यह एक विचार है।

2

सबसे अच्छा मैं अब तक आने में सक्षम हूं autojump है। अभी भी ido के करीब एक समाधान की तलाश है, लेकिन autojump एक बहुत छोटा ऐप है।

+0

और मैं FASD जो मैं और भी बेहतर लगता है की खोज की: https: // github.com/clvv/fasd – Ehvince