जब विम इन्सर्ट मोड में होता है, तो क्या फ़ाइलपथ ऑटोकम्प्लीशन जोड़ने का एक तरीका है?


81

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

यदि आप CTRLDविम इन्सर्ट मोड में शेल की कार्यक्षमता प्राप्त कर सकते हैं तो अतिरिक्त क्रेडिट (यानी यह देखने के लिए कि वर्तमान पथ में कौन सी फाइलें / निर्देशिकाएँ हैं)।


दिलचस्प सवाल है, मुझे जवाब भी जानना अच्छा लगेगा :)
जे ज़ेंग

@stephenmm आपके शेल में Ctrl-D क्या करता है? मेरे बैश शेल में यह कुछ नहीं करता है जब मैं कुछ पाठ दर्ज करता हूं, अन्यथा टर्मिनल बंद कर देता हूं।
अल्हलाल

@लाल - ऐसा लगता है कि CTRL-D फाइलों और निर्देशिकाओं को खान के कुछ पुराने खोल में दिखाएगा। मुझे अब कोई CTRL-D कार्यक्षमता दिखाई नहीं देती है।
स्टीफन मिमी

जवाबों:


166

के लिए फ़ाइल नाम ओमनी पूरा होने, आप का उपयोग कर सकते हैं:

Ctrl- XCtrl-F


11
एक और विम अहा पल .... धन्यवाद। मैं वैसे भी इन्सर्ट मोड में टैब का उपयोग नहीं करता हूँ, इसलिए इसे मेरे .vimrc: imap <Tab> <CX> <CF>
stephenmm

4
इंसर्ट मोड में <टैब> के लिए एक और अच्छा उपयोग है <cn>। यह आपके द्वारा काम कर रहे फ़ाइल में अन्य शब्दों के आधार पर टाइप किए गए शब्द को स्वतः पूर्ण करेगा। मैं चर या वर्ग नाम टाइप करते समय इसका हर समय उपयोग करता हूं।
डेरेक

क्या खोज पथ को प्रभावित करने का कोई तरीका है? C फ़ाइल में #include प्रविष्टियाँ जोड़ते समय पथ आपके द्वारा फ़ाइल खोले जाने के सापेक्ष नहीं हो सकते हैं।
रॉब ब्रैडफोर्ड

@RobBradford, YouCompleteMe को आज़माता है, अगर सही जानकारी प्रदान की जाती है (जैसे मैं YCM-जेनरेटर द्वारा निर्मित .mm_extra_conf.py, जो मेरे cmake आधारित बिल्ड सिस्टम का उपयोग करता है) का उपयोग करता है, तो यह आपके फ़ोल्डर में किसी भी पथनाम को स्वतः पूर्ण करेगा।
एमिल वीरजाग्स

जब फ़ाइल नाम में स्थान होते हैं, तो विम स्वतः पूर्ण नहीं होता है। क्या इसे ठीक करने का कोई रास्ता है?
जीन


18

@CMS और @michael उत्कृष्ट उत्तरों पर निर्माण करने के लिए

ctrl+ X ctrl+ fकमांड अनुक्रम का उपयोग करते समय यह वर्तमान निर्देशिका में फ़ाइलों की एक सूची प्रदर्शित करेगा। मैं अलग-अलग फ़ाइलनामों के बीच ऊपर और नीचे जाने के लिए सही कुंजी की तलाश में एक मिनट बिताता हूं। सही कुंजी Ctrl-n और Ctrl-p हैं। Spaceटाइप करने और जारी रखने के लिए आप लगभग किसी भी अन्य कुंजी (जैसे ) का उपयोग कर सकते हैं ।

इसके अलावा, यदि आप पहले से ही फ़ाइल / निर्देशिका में नहीं हैं, तो आप सम्मिलित करना चाहते हैं, आप निम्नानुसार फ़ाइल ट्री संरचना नीचे जा सकते हैं:

  1. वैकल्पिक रूप से निर्देशिका का कुछ हिस्सा दर्ज करें। तुम भी ../../उदाहरण के लिए उपयोग कर सकते हैं !
  2. ctrl+ X ctrl+ दबाएं fऔर सूची से पेड़ में पहले आइटम का चयन करें।
  3. अगली प्रेस ctrl+ fफिर से जबकि सही आइटम को हाइलाइट किया गया है ताकि डायरेक्टरी ट्री स्ट्रक्चर के अगले स्तर की एक सूची प्रदर्शित की जा सके।

आप ऐसा तब तक कर सकते हैं जब तक कि आप उस निर्देशिका / फ़ाइल को न पा लें, जिसे आप दस्तावेज़ में सम्मिलित करना चाहते हैं।


6
चरण 3 में आपका मतलब था ctrl + x और ctrl + f? क्योंकि सिर्फ ctrl + f मेरे लिए काम नहीं कर रहा है, यह ctrl + n की तरह ही करता है। यदि कोई निर्देशिका इसमें स्थान रखती है तो Btw यह काम नहीं करता है: /। क्या आप वर्कअराउंड जानते हैं?
रोजो

0

मैंने इसी तरह की समस्या का अनुभव किया। मुझे इसका हल मिला:

    sudo apt-get install realpath

और सामान्य मोड प्रकार के साथ फाइल करने के लिए वीआईएम नेवीगेट में:

    :r !realpath /path/to/file

जब आप नॉन-इंसर्ट मोड के बाद नेविगेट कर रहे हैं! रिस्पेक्ट आप हमारे कुंजी बटन का उपयोग करने में सक्षम हैं।

VOILA! TAB फिर से काम कर रहा है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.