2008-09-10 12 views
23

आश्चर्यजनक रूप से जब आप विम पर अच्छा पाते हैं, तो आप एक्सीप्से जैसे मानक आईडीई से भी तेज़ी से कोड कर सकते हैं। लेकिन एक चीज जिसे मैं वास्तव में याद करता हूं वह कोड पूर्णता है, खासकर लंबे परिवर्तनीय नामों और कार्यों के लिए।क्या विम में पर्ल के लिए कोड पूर्ण करने में कोई तरीका है?

क्या विर में पर्ल के लिए कोड पूर्ण करने में कोई तरीका है?

उत्तर

29

Ctrl - पी (पिछला मैच जाओ) और Ctrl - एन (अगला मेल प्राप्त करें) छद्म कोड पूरा होने की तरह कर रहे हैं। (- Ctrl के लिए पी, आगे - के लिए पिछड़ों Ctrlएन) वे मूल रूप से फ़ाइल खोज आप संपादन कर रहे हैं (और किसी भी खुले बफ़र्स, और यदि आप टैग अपने टैग फ़ाइल में कुछ भी उपयोग कर रहे हैं) शब्द के लिए कि आप जो टाइप कर रहे हैं उसके साथ शुरू करें और एक ड्रॉप डाउन सूची जोड़ें। यह चर और फ़ंक्शन नामों के लिए आश्चर्यजनक रूप से अच्छी तरह से काम करता है, भले ही यह इंटेलिजेंस न हो। आम तौर पर मैं Ctrl - पी के रूप में उपयोग करने के लिए वेरिएबल या फ़ंक्शन के रूप में आमतौर पर कोड में पीछे है। अगर आप विम खोलने की एक ही प्रतिलिपि रखते हैं, तो यह उन फ़ाइलों को खोजेगा जिन्हें आपने पहले खोला था।

+0

यह मेरे लिए महान काम कर रहा था, लेकिन मैं हाल ही में किया है एक नए विकास पर्यावरण के लिए स्विच। अब केवल मेरे खुले बफर खोजने की बजाय यह मेरे पूरे स्रोत पेड़ को खोजता है जो काफी समय लेता है - और केवल पर्ल के लिए ही करता है। मैं यह कैसे देख सकता हूं कि यह नया वातावरण TAGS का उपयोग कर रहा है या नहीं? मैंने 'टैग 'की कोशिश की और' E73: टैग स्टैक खाली' मिला। क्या टैग के अलावा कुछ और है जो सक्षम हो सकता है? इसके अलावा नए वातावरण में विम का थोड़ा नया संस्करण है। मैं इसे केवल खुले बफर खोजना चाहता हूं। – redbmk

7

ठीक है, विम की जेनेरिक पूर्णता तंत्र आश्चर्यजनक रूप से अच्छा है, बस डालने मोड में Ctrl-N का उपयोग कर। इसके अलावा, सी-एक्स सी-एल का उपयोग करके लाइन पूर्णता बहुत आसान है।

यह भी देखें vim script for perl

9

विम 7 ओमनी पूर्णता का समर्थन करता है।

उदाहरण के लिए, मैं अपने vimrc

autocmd FileType php set omnifunc=phpcomplete#CompletePHP 

और उसके बाद में इस है, जब मैं प्रेस Ctrl-X सम्मिलित मोड में Ctrl-ओ, मैं स्वत: पूर्ण संभावनाओं की एक ड्रॉपडाउन सूची मिलता है।

यहां एक omnicfunc for perl है। कोई विचार नहीं कि यह कितना अच्छा काम करता है।

3

Ctrl +एन

यह, पर्ल हैक्स पुस्तक में विस्तार से बताया गया है कि कैसे पैकेज पूरा होने करने के लिए के साथ। अत्यधिक सिफारिशित।

3

आप SuperTab प्लगइन पर गौर करना चाहिए: http://www.vim.org/scripts/script.php?script_id=1643 यह चलो तुम पूरा होने के कर (या तो OmniCompletion या नियमित रूप से पूरा होने) टैब और शिफ्ट-टैब^के बजाय एन और^पी का उपयोग कर।

3

अन्य उत्तरों में से एक में .vimrc क्लिप थोड़ा गलत है। बहुत अधिक अनुकूलन के साथ

inoremap <tab> <c-r>=InsertTabWrapper()<cr> 

function! InsertTabWrapper() 
    let col = col('.') - 1 
    if !col || getline('.')[col - 1] !~ '\k' 
     return "\<tab>" 
    else 
     return "\<c-p>" 
    endif 
endfunction 

आप इस पा सकते हैं, और अन्य vim चाल की टन in this thread at Perlmonks --which लिंक करने के लिए और भी अधिक सूत्र: किसी स्वत: पूर्ण कुंजी में अपने टैब कुंजी करने के लिए, इस कोड का उपयोग।

5

मानक CTRL-N और CTRL-P यदि आप अपने ~/.vim/ftplugin/perl में निम्नलिखित जोड़ते हैं तो भी बेहतर काम करते हैं।vim फ़ाइल:

सेट iskeyword + =:

यह होगा तो स्वत: पूर्ण मॉड्यूल नाम, आदि