2012-03-01 17 views
32

मैं थोड़ा vim मेनू के उपयोग के बारे में उलझन में हूँ। मेरे पास set wildmenu और set wildmode=list:longest,full है लेकिन मुझे अपने जीवन के बारे में समझ नहीं आता है कि कैसे समापन सुविधा का उपयोग करें और उपयोग करें। क्या यह सुविधा उपयोगी है? क्यों और कैसे? यह वास्तव में किस तरह का पूरा करता है? (दूसरे शब्दों में, क्या पूरा होने सूची सामग्री को निर्धारित करता)कैसे प्रभावी ढंग से उपयोग करने के लिए विम: wildmenu

किसी भी सुझाव और उदाहरण प्रयोगों की सराहना की जाएगी।

+0

मैंने 'wildmenu' सेट किया है। और इसे काफी उपयोगी लगता है। अगर मुझे उस आइटम पर संकेत नहीं दिया गया है, तो मुझे बहुत कुछ टैब नहीं करना पड़ेगा। –

उत्तर

39

wildmenu और wildmode कमांड लाइन पूरा करने के लिए किया जाता है। इसे आजमाने का सबसे आसान तरीका :color <Tab> के साथ होगा: कमांड लाइन कॉलम और में प्रदर्शित एक मशीन पर उपलब्ध सभी रंगों की सूची के साथ लंबवत रूप से "विस्तारित" है, जिसे आप <Tab> (आगे) और <S-Tab> के साथ नेविगेट कर सकते हैं (पिछड़े)।

कमांड लाइन पूरा होने के व्यवहार और wildmenuwildmode पर निर्भर हैं।

अधिक जानकारी के लिए :help wildmode और :help wildmenu देखें।

+1

तो मुझे जो मिल रहा है वह यह है कि यह vim कमांड के लिए स्वत: पूर्ण है! जो अधिक समझ में आता है। क्या इससे परे जाने में सक्षम है? संभवतः स्वत: पूर्ण कार्य/परिवर्तनीय नामों के भीतर वाक्यविन्यास का पता लगाने, कहें, .cpp फ़ाइलें? – skippr

+1

कोई 'वाइल्डमोड'/'वाइल्डमेनू' कॉम्बो कमांड लाइन पूर्ण होने से परे कुछ भी नहीं कर सकता है। "ओमनी-समापन" नामक कोड समापन के लिए विम का एक और तंत्र है। अधिक जानकारी के लिए 'ओमनी-पूर्णता' में पढ़ें। – romainl

4

:set wildmode=list:longest आप विस्तार करने के लिए wildmenu

:set wildmenu आप <Left> या <Righ> compoetion सूची के माध्यम से नेविगेट करने के लिए उपयोग करने के लिए अनुमति देता है सकते हैं।

+0

क्या कोई तरीका है ताकि यदि आप टैब हिट करते हैं, तो आप पूर्णता सूचियों के माध्यम से स्क्रॉल कर सकते हैं? – hlin117

+1

बस ': wildmenu = list सेट करें: इसके बजाय पूर्ण '। –

+0

लिन: यह मेरी इच्छा के करीब है; हो सकता है कि मैं अपने पिछले प्रश्न से स्पष्ट नहीं हो सकता। क्या कोई तरीका है ताकि आप ** विस्तारित wildmenu ** के माध्यम से स्क्रॉल कर सकें? यह कार्यक्षमता zsh के समान है: http://i.stack.imgur.com/GvC4A।पीएनजी – hlin117

25

Prolly सबसे अधिक आरामदायक विकल्प, कम से कम मेरे लिए है:

set wildmenu 
set wildmode=longest:full,full 

इसका मतलब है कि पहले <Tab> पर यह सबसे लंबे समय तक आम स्ट्रिंग के लिए पूरा हो जाएगा और wildmenu (एक क्षैतिज और unobstructive थोड़ा मेनू) लागू करेगा। अगले <Tab> पर यह पहला अल्टेनेटिव पूरा करेगा और बाकी के माध्यम से चक्र शुरू हो जाएगा। आप <Tab> और <S-Tab> के साथ क्रमशः आगे जा सकते हैं।

:b<Tab>

+0

क्या आप समझा सकते हैं कि यह कैसे काम करता है? सहायता पृष्ठ ':' के बारे में कुछ भी नहीं कहता है। – saga

+0

यह विम सहायता में वर्णित है: http://vimdoc.sourceforge.net/htmldoc/options.html#'wildmode '(लेकिन आपको' वाइल्डमोड 'में देखना होगा, और' wildmenu' नहीं) –

9

मेरा पसंदीदा

set wildmenu 
set wildmode=longest:list,full 

पहले टैब पूरा हो जाएगा है:

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

संबंधित मुद्दे

 संबंधित मुद्दे