फ़ाइल नामों के लिए मैं विम को कैसे सामान्य (बैश-जैसे) टैब पूरा कर सकता हूं?


289

जब मैं विम में एक नई फ़ाइल खोल रहा हूं और मैं टैब पूरा करने का उपयोग करता हूं, तो यह आंशिक फ़ाइल जैसे बैश करता है करने के बजाय पूरे फ़ाइल नाम को पूरा करता है। क्या इस फ़ाइल का नाम टैब पूरा करने का काम बैश की तरह अधिक है?


10
तकनीकी रूप से, मुझे यकीन है कि "बैश" किसी भी टैब को पूरा नहीं करता है। यह रीडलाइन है जो ऐसा करती है।
मैक्सी-बी

2
हम ^ X ^ F सुविधा के व्यवहार को अनुकूलित करने के बारे में बात कर रहे हैं?
ब्रूनो जेसीएम

जवाबों:


413

मैं व्यक्तिगत रूप से उपयोग करता हूं

set wildmode=longest,list,full
set wildmenu

जब आप पहला टैब हिट टाइप करते हैं, तो यह यथासंभव पूरा हो जाएगा। दूसरा टैब हिट एक सूची प्रदान करेगा। तीसरे और बाद के टैब पूरा होने वाले विकल्पों के माध्यम से साइकिल चलाएंगे ताकि आप आगे की चाबी के बिना फ़ाइल को पूरा कर सकें।

बैश-जैसा होगा बस

set wildmode=longest,list 

लेकिन पूर्ण बहुत काम है।


1
काश, यह डिफ़ॉल्ट व्यवहार होता। जब तक मैंने इस पोस्ट को नहीं देखा, तब तक मुझे पूर्ण टैब के पूरा होने के आस-पास नहीं मिला।
नेहा करंजकर

6
@NehaKaranjkar मैं नए वातावरण में इसे आसान बनाने के लिए एक dotfiles संग्रह बनाए रखने की सलाह देता हूं
माइकल

2
क्या केवल कुछ परिणाम होने पर ही पूर्ण शुरुआत करने का कोई तरीका है? की तरह कुछ set wildmode=longest,5full,list। बहुत सारे परिणामों के साथ पूर्ण बेकार है लेकिन कुछ के साथ बहुत आसान है। यह कुछ इस तरह से परिपूर्ण होगा "शो केवल तभी पूरा होगा जब एक लाइन स्क्रीन पर फिट बैठता है"
एल्बफैन

1
यह पूर्व में काम कर रहा था (gVim / ubuntu) लेकिन अब यह नहीं है (macvim8.x / macb)। उदाहरण देखें । कोई विचार?
पसलीस

1
2 महीने के लिए मूल टैब को पूरा करने के बाद, मुझे लगता है कि इसे सरल बनाने का एक तरीका होना चाहिए। धन्यवाद।
ramwin

23

बैश के पूरा होने का निकटतम व्यवहार होना चाहिए

set wildmode=longest:full,full

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

फिर आप बाकी पात्रों को टाइप करके रख सकते हैं या पहले मैच के साथ फिर से ऑटो-टैब दबा सकते हैं और उसके चारों ओर सर्कल बना सकते हैं।


मुझे लगता है कि मैं इस तरह से पसंद करता हूं।
एड़ी एकोफो

8

यदि आप वाइल्डमेनू सेट नहीं करना चाहते हैं, तो आप हमेशा एक फ़ाइल खोलने के लिए Ctrl+ दबा सकते हैं LCtrl+ Lबाश पूरा होने की तरह फाइलन पूरा करेगा।


Ctrl-L बैश स्वतः पूर्ण की तरह कार्य नहीं करता है। यह सभी संभावित विकल्पों के माध्यम से चक्र नहीं करता है।
Raine

2
मेरा बैश ऐसा काम करता है। <Tab>वर्तमान स्ट्रिंग को उतना ही पूरा करता है जहां तक ​​संभवत: (जैसे CTRL-Lविम में) <Tab><Tab>संभव है और संभावित मैचों की सूची (जैसे CTRL-Dविम) में दिखाई देती है।
glts

8

सुझाए गए वाइल्डमोड / वाइल्डमेनू के अलावा, विम Ctrl+ का उपयोग करके सभी संभावित पूर्णताओं को दिखाने का विकल्प भी प्रदान करता है D। यह कुछ उपयोगकर्ताओं के लिए मददगार हो सकता है जो इस सवाल पर ठोकर खाते हैं जब मैंने विम में अलग-अलग ऑटोकम्प्लीशन विकल्पों की खोज की थी।


4

मुझे लगता है कि आप वर्तमान बफर के माध्यम से खोज करने के लिए Ctrl+ के माध्यम से विम में स्वत: पूर्ण का उपयोग कर रहे हैं N। जब आप इस कमांड का उपयोग करते हैं, तो आपको समाधानों की एक सूची मिलती है; बस सूची में अगले आइटम पर जाने के लिए कमांड को दोहराएं। सभी स्वत: पूर्ण आदेशों के लिए समान है। जब वे पूरे शब्द को भरते हैं, तो आप सूची में तब तक बढ़ना जारी रख सकते हैं जब तक आप जिस पर उपयोग करना चाहते हैं, वहां पहुंच जाते हैं।

यह एक अधिक उपयोगी कमांड हो सकता है: Ctrl+ P। एकमात्र अंतर यह है कि Ctrl+ Pबफर में पीछे की ओर खोज करता है जबकि Ctrl+ Nआगे की खोज करता है ... वास्तविक रूप से, वे दोनों समान तत्वों के साथ एक सूची प्रदान करेंगे, और वे बस एक अलग क्रम में दिखाई दे सकते हैं।


0

प्रयोग करके देखें :set wildmenu। इसके अलावा, मुझे यकीन नहीं है कि आप वास्तव में क्या कोशिश कर रहे हैं।

ओह, हाँ, और शायद इस लिंक की कोशिश करें: लिंक

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