क्या यह संभव है जब यह प्रोग्राम का उपयोग करते समय ऑटो-फंक्शन फ़ंक्शन के नाम, चर आदि हों?


56

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

उदाहरण के लिए, जैसा कि मैं निम्नलिखित पायथन प्रोग्राम टाइप कर रहा हूं:

hungy = True

def eatFood(food):
    pass

if hungry:
    eatF

लाइन eatFस्वचालित eatFood()रूप से उपलब्ध ऑटो-पूर्ण विकल्प के रूप में दिखाई देगी ।

क्या विम में यह क्षमता है? यदि हां, तो मैं इसे कैसे सक्षम कर सकता हूं?

जवाबों:


42

विम में स्वतः पूर्ण के कई अलग-अलग स्वाद हैं। SuperTab का उपयोग करने का एक तरीका हो सकता है । यह किसी भी समय कम या ज्यादा टैब-पूर्णता का उपयोग करने का एक तरीका प्रदान करता है। Tabपूर्ण सूची प्राप्त करने के लिए शब्द को आंशिक रूप से टाइप करने के बाद यह आपको हिट करने में सक्षम करेगा । उदाहरण के लिए, टाइपिंग के eatFबाद Tabविस्तार करनाeatFood.

कृपया ध्यान दें : इन चित्रों को कार्रवाई में gifs उदाहरण के लिए सभी लिंक।

सुपर्ताब पूर्णता

विम के पास अन्य बेहतरीन विकल्प हैं। आपको :h ins-completionअंतर्निहित पूर्ण विकल्पों की विविधता को देखने के लिए पढ़ना चाहिए । Vim's Ctrl- XCtrl- का उपयोग करना O, jedi जैसे अजगर-जागरूक प्लगइन के साथ मिलकर एक पूर्ण स्वाद दे सकता है। जेडी को ओमनी-पूरा होने पर प्रलेखन देने के लिए कॉन्फ़िगर किया जा सकता है (यह वही है Ctrl- XCtrl- Oकरता है)। फिर पूर्ण होने वाले उम्मीदवारों के लिए दस्तावेज़ एक विभाजित विंडो में दिखाई देंगे।

ctrlxctrlo पूरा करना

समान प्लगइन्स का उपयोग करना लेकिन विभिन्न विकल्पों में सभी प्रकार के व्यवहार होते हैं। यह संभव है, उदाहरण के लिए, स्वतः पूर्णता के लिए संकेत देने की आवश्यकता नहीं है (यदि ऐसा है तो आप इसके बाद हैं)। इसके बजाय, जब आप किसी शब्द के कुछ अक्षर (कहते हैं, 2 या 3) टाइप करते हैं, तो एक प्लगइन एक मेनू में समझदारी से संभावित पूर्णताओं की पेशकश करने की कोशिश कर सकता है।

यहाँ छवि विवरण दर्ज करें

तो संक्षिप्त उत्तर हाँ है! लेकिन कॉन्फ़िगरेशन प्रक्रिया थोड़ी जटिल हो सकती है। मैं इसे माहिर वीम की लंबी सीढ़ी के एक कदम के रूप में सोचता हूं।


मैंने उन सभी की कोशिश की है और मैं हमेशा सुपरटैब पर वापस आता हूं, यह कम से कम घुसपैठ है।
लालकृष्ण

1
मैं भी वास्तव में YouCompleteMe प्लगइन को पसंद करता हूं, क्योंकि यह आपको-टाइप का सुझाव देता है और आप या तो सुझावों को चुन सकते हैं या अनदेखा कर सकते हैं। हां, नेत्रहीन को नजरअंदाज करना कठिन है, लेकिन यह मेरे वर्कफ़्लो में बहुत ही अनपेक्षित है क्योंकि इसमें कम कुंजी स्ट्रोक की आवश्यकता होती है।
22

3
मैंने "क्लिक पर" होने के लिए एनिमेशन बदल दिए हैं, इस अर्थ में कि वे जीआईएफ एनिमेशन से जुड़े हैं।
davidlowryduda

1
मैं अपने काम के कंप्यूटर पर YouCompleteMe का उपयोग नहीं कर सकता क्योंकि मेरे पास निर्भरताएं स्थापित करने के लिए रूट नहीं है, SuperTab अब तक का सबसे अच्छा विकल्प है।
चार्ल्स क्लेटन

@mixedmath मेरे मामले में सुपरटैब काम नहीं करता है।
अल्हलाल १५'१

24

इस तरह की कार्यक्षमता - यानी, ऑटो-पूर्णता के लिए वर्तमान फ़ाइल (और सभी खुली फाइलें) की खोज, डिफ़ॉल्ट रूप से सक्षम होना चाहिए Ctrl+P:

उपयोग में स्वतः पूर्णता का स्क्रीनशॉट

आप के साथ n ext सुझाव पर जा सकते हैं Ctrl+N, पी स्पष्ट सुझाव के साथ Ctrl+Pऔर किसी भी पत्र टाइप करके इसका चयन करें (जो सुझाव के ठीक बाद जोड़ा जाएगा)।


1
संपादक को (जैस्पर): मैं अधिक संभावना है कि मैं फिर से कुछ लिखना चाहता हूं जो मैंने हाल ही में लिखा है, न कि कुछ मैं भविष्य में लिखूंगा या जो फ़ाइल की शुरुआत में है। इसलिए ^Pअधिक प्राकृतिक IMHO है। अन्यथा संपादन के लिए धन्यवाद (मुझे आशा है कि मैंने सही बटन पर क्लिक किया और आपको अपना +2 मिल गया)।
यो '

1
हां, मुझे वे काल्पनिक इंटरनेट पॉइंट मिले :) मैंने हमेशा सोचा था कि सुझाव सूची को वर्णानुक्रम में हल किया जाएगा ...
जैस्पर

@ उपस्थिति का क्रम यह है (कम से कम मेरे लिए निश्चित रूप से, ऊपर भी देखें: world,word,woodऔर अन्य तरीके से नहीं)। तो ^Pअंतिम उपयोग पूरा हो गया है, जो बहुत आसान है (मैं सूची में 3 आइटम की तुलना में शायद ही आगे जाता हूं, यहां तक ​​कि एक लंबी फ़ाइल में भी)।
यो '

protip:inoremap <C-Space> <C-N>
wchargin

20

विम को मूल रूप से पूरा करने के लिए समर्थन है। आप विभिन्न विभिन्न पूर्णताओं के बारे में पढ़ सकते हैं जो विम का समर्थन करती हैं :h ins-completion

सामान्य तौर पर, मैंने जो कुछ भी पाया है उसके लिए, इन्स-पूर्णता मेरी पसंद के लिए पर्याप्त है, हालांकि कुछ पूर्ण प्लगइन्स हैं जो कि इन-पूर्णता से अधिक मूल्य प्रदान करते हैं। NeoComplete , YCM (YouCompleteMe) उसी के लिए कुछ हैं। वे इस अर्थ में अधिक उन्नत हैं कि वे विभिन्न प्रकार की पूर्णताओं को अधिक सटीक रूप से संयोजित करने का प्रयास करते हैं, और उनके पास उन्नत कैशिंग तंत्र भी होते हैं, इसलिए वे अधिक तेज़ होते हैं। YCM यहां तक ​​कि बेहतर IntelliSense प्रदान करने के लिए बाहरी संकलक / उपयोगिताओं के साथ काम करने के लिए हद तक जाता है।


9

हां, vim के लिए स्वतः पूर्ण स्क्रिप्ट मौजूद हैं। "सर्वश्रेष्ठ" विकल्प आपकी प्रोग्रामिंग भाषा पर निर्भर करता है। जैसा कि आपका उदाहरण कोड पायथन है, मैं जेडी पर एक नज़र डालने का सुझाव देता हूं । उसके ऊपर निर्माण करें आप मुझे पूरा करते हैं , जिसमें अन्य भाषाओं के लिए भी समर्थन है, लेकिन कभी-कभी इसे बहुत बड़ा माना जाता है। अन्य भाषाओं के लिए आप विम स्क्रिप्ट पर लंबे सेट के माध्यम से ब्राउज़ कर सकते हैं


7

इन्सर्ट मोड में, किसी शब्द के पहले जोड़े को टाइप करें, फिर दबाएँ:

Ctrl-N to insert the next matching word; or
Ctrl-P to insert the previous matching word. 

किसी कार्यक्रम में चर के नाम दर्ज करते समय यह विशेष रूप से उपयोगी है।

'पूर्ण' विकल्प नियंत्रित करता है जहाँ कीवर्ड खोजे जाते हैं (फ़ाइलें, टैग फ़ाइलें, बफ़र्स और बहुत कुछ शामिल हैं)।

'पूर्णता' विकल्प नियंत्रित करता है कि पूर्णता कैसे होती है (उदाहरण के लिए, एक मेनू दिखाया गया है)।

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