विम में स्वतः पूर्णता


258

एक लंबे "प्रशिक्षण" के बाद, मैंने आखिरकार विम पर स्विच कर दिया है; लेकिन मुझे स्वतः पूर्णता से कुछ परेशानी है। टाइप करते समय मेरे पास कोड सुझाव कैसे हो सकता है?

मैं आमतौर पर PHP, Ruby, HTML, C और CSS विकसित करता हूं।

जवाबों:


143

जैसे ही आप टाइप करते हैं, आप स्वत: कोड पूरा करने के लिए AutoComplPop जैसे प्लगइन का उपयोग कर सकते हैं ।

2015 संपादित करें: मैं व्यक्तिगत रूप से अब YouCompleteMe का उपयोग करता हूं


10
यह अत्यधिक अनुशंसित है। सीएक्स सीओ, सीपी या सीएन टाइपिंग से प्रयास लेता है।
अमजीत

मैं यह कोशिश की है, लेकिन यह काम नहीं करता है लगता है .. वहाँ शायद अन्य लिपियों के साथ एक संघर्ष है ..
Diegocstn

1
क्या आप फ़ाइलों को ~ / .vim में निर्दिष्ट निर्देशिकाओं में डाल रहे हैं?
michaelmichael

1
@dieguitoweb एसीपी डिफ़ॉल्ट रूप से हर फाइलपेट के साथ काम नहीं करता है। आपको जावास्क्रिप्ट, एक्शनस्क्रिप्ट और PHP के साथ काम करने के लिए इसे "हैक" करना होगा। यहां मैं समझाता हूं कि मैं यह कैसे करता हूं। और यहाँ PHP के लिए एक और संकेत है।
रोमेनिल

अब यह काम करता है :) सभी फाइलें पहले से ही सही निर्देशिकाओं में थीं .. मैंने केवल स्क्रिप्ट को गिट रिपॉजिटरी से एक नए डाउनलोड के साथ बदल दिया और अब यह ठीक है। बहुत धन्यवाद
diegocstn

438

उपयोग Ctrl- Nआवेषण मोड में शब्द सुझावों की एक सूची प्राप्त करने के लिए। :help i_CTRL-Nइस कार्यक्षमता पर विम के प्रलेखन को देखने के लिए टाइप करें।

यहाँ विम में पायथन शब्दकोश आयात करने का एक उदाहरण है।


15
धन्यवाद यह बहुत अच्छा है, लेकिन मैं <ctrl + N> दबाए बिना इस सूची को स्वत: कैसे कर सकता हूं?
डाइगोकस्टर्न

5
यह वही है जो माइकेलमिकेल आपको बताए गए प्लगइन के साथ बता रहा था। इसके अलावा, आप सुपरटैब को देख सकते हैं।
प्रेजेकटज़रो

4
CSS सपोर्ट के लिए, अपने .vimrc
mahalie

3
यह करने का सबसे व्यापक और मूल तरीका है :-)
श्रीकांत

5
@ हाय-एंजेल 'ऑटो' हिस्सा यह है कि यह स्वचालित रूप से एक शब्द के पूरा होने के लिए विकल्पों को निर्धारित करता है, और एक विकल्प के चयन पर स्वचालित रूप से शब्द का मुकाबला करता है।
सीजेबीएस

26

यदि आप VIM संस्करण 8+ का उपयोग कर रहे हैं, तो बस टाइप करें Ctrl + nया Ctrl + p


11

आप अंतर्निहित omnifuncसेटिंग से शुरू कर सकते हैं ।

रख दो:

filetype plugin on
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType ruby,eruby setl ofu=rubycomplete#Complete
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType c setl ofu=ccomplete#CompleteCpp
au FileType css setl ofu=csscomplete#CompleteCSS

अपने नीचे की तरफ .vimrc, फिर <Ctrl-X><Ctrl-O>इन्सर्ट मोड में टाइप करें।

मैं हमेशा इस CSS पूरा होने पर भरोसा करता हूं।


क्या setlमतलब है? धन्यवाद।
क्यू

ठीक है, मुझे मिल गया, इसका मतलब है सेट्लोकल। लेकिन हमें यहाँ सेट्लोकल की आवश्यकता क्यों है?
QED

जब आप उसी बफ़र में कोई दूसरी फ़ाइल खोलते हैं, तो इसे देखिए।
ernix

2
@ernix आपके लिंक से: विम में एक बफर है ... एक फ़ाइल का एक खुला उदाहरण है ... मुझे बफ़र्स, विंडो और टैब के बारे में पता है; लेकिन मैं एक ही बफर में एक और फ़ाइल खोलने के बारे में नहीं जानता। यह मुझे लगता है कि जब आप एक फ़ाइल खोलते हैं तो यह हमेशा एक नए बफर में खुलेगा और उस बफर को बफर सूची में जोड़ देगा। मुझे पता है कि इस तरह के त्वरित सुधार सूची के रूप में अन्य तरीकों बफ़र्स उपयोग किया जाता है, कर रहे हैं, लेकिन मैं के बारे में पता नहीं था बदल रहा है क्या फ़ाइल एक बफर में है। :h buffersकहते हैं: एक बफ़र संपादन के लिए मेमोरी में भरी हुई फ़ाइल है। उस ने कहा, मैं केवल 3 मस्जिद के लिए विम का उपयोग कर रहा हूं। और निश्चित रूप से सुधार के लिए खुला है।
जेकड

1
@ जेकड आह हां। आप सही हे। मैंने गलत तरीके से "उदाहरण" लिया। मुझे लगा कि आप विभिन्न पीआईडी ​​के साथ प्रक्रियाओं के बारे में बात कर रहे थे। क्षमा करें, मैंने जो कहा है, उसके बारे में भूल जाओ।

6

इसमें https://github.com/Valloric/YouCompleteMe भी है और इसमें जेडी जैसी चीजें शामिल हैं और इसमें फजी मैच भी है। अब तक मैंने वाईसीएम को सबसे तेज पाया है जो मैंने कोशिश की है।

संपादित करें: https://github.com/maralla/completor.vim जैसे कुछ नए भी मौजूद हैं


6

मैंने हाल ही में ओनिविम नामक एक परियोजना की खोज की है , जो नियोविम के लिए एक इलेक्ट्रॉन-आधारित फ्रंट-एंड है जो बॉक्स से बाहर कई भाषाओं के लिए बहुत अच्छा स्वत: पूर्णता के साथ आता है, और चूंकि यह मूल रूप से नियोविम के चारों ओर केवल एक आवरण है, इसलिए आपके पास विम की पूरी शक्ति है अपने निपटान में अगर जीयूआई आपकी आवश्यकताओं को पूरा नहीं करता है। यह अभी भी शुरुआती विकास में है, लेकिन इसमें तेजी से सुधार हो रहा है और इसके आसपास वास्तव में सक्रिय समुदाय है। मैं 10 वर्षों से विम का उपयोग कर रहा हूं और ओनी को कुछ हफ्ते पहले एक टेस्ट ड्राइव देना शुरू किया, और जबकि इसमें कुछ कीड़े हैं और यह मेरे रास्ते में नहीं आया है। मैं दृढ़ता से नए विम उपयोगकर्ताओं के लिए इसकी सिफारिश करूंगा जो अभी भी अपनी विम-उंगलियां प्राप्त कर रहे हैं!

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

ओनिविम: https://www.onivim.io/


32
मेरे लिए विम का पूरा बिंदु टर्मिनल का उपयोग कर रहा है ... अगर मैं एक इलेक्ट्रॉन ऐप का उपयोग करना चाहता था, तो मैं बस एक विस्म एक्सटेंशन के साथ vscode का उपयोग करूंगा ..
मोहम्मद बेनकेदरा

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

3

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

पिछले लिंक में प्रोजेक्ट पेज पर स्क्रीनशॉट की एक सरणी है। Neocomplcache में कॉन्फ़िगरेशन विकल्पों का एक टन भी है, जिनमें से प्रोजेक्ट पृष्ठ पर भी मूल उदाहरण हैं।

यदि आपको अधिक गहराई की आवश्यकता है, तो आप मेरे vimrc में संबंधित अनुभाग को देख सकते हैं - बस शब्द neocomplcache की खोज करें।


1

यहाँ लिंक है ! PHP के लिए।

कुछ PHP फ़ंक्शंस लिखते समय Ctrl + o कुंजियों के बाद Ctrl + x दबाएँ।

ट्यूटोरियल के लिए ऑसेम्स सॉल्यूशंस के लिए धन्यवाद


1

यदि आप अपने वर्तमान बफ़र्स की कैश से ही करना चाहते हैं स्वत: पूर्ण करने, supertab से स्थापित करने के लिए आसान है neocomplete , मैक पर काम कर सकते MacVim की आवश्यकता के बिना बॉक्स से बाहर पहले से इंस्टॉल vim।

आप अन्य विकल्पों की जांच कमाल कर सकते हैं ।


0

PHP के लिए, Dovte के साथ Padawan , Neovim में एक मजबूत PHP स्वतः पूर्णता के लिए महान समाधान हैं। मैंने बहुत सी चीजों की कोशिश की और पदावन एक आकर्षण की तरह काम करती है!

Vim के लिए आप Deoplete की जगह Neocomplete का उपयोग कर सकते हैं ।

मैंने एक लेख लिखा था कि अगर कोई दिलचस्पी रखता है तो विम PHP आईडीई कैसे बना सकता है। बेशक पडावन इसका हिस्सा है।


0

एक अन्य विकल्प coc.nvim है

यह वास्तव में तेज़ है और पूर्णता बहुत बढ़िया है क्योंकि यह उसी स्वत: पूर्णता का उपयोग करता है जैसा कि VScode में है। इसमें लिनिंग क्षमताएं भी हैं। तो इससे पता चलता है कि आप एक बग हो सकता था। यह भाषाओं की भीड़ का समर्थन करता है।

इसे स्थापित करने और कॉन्फ़िगर करने में थोड़ा समय लग सकता है, लेकिन मुझे लगता है कि यह वहाँ से बाहर निकलने के लिए सबसे अच्छा स्वत: पूर्णता इंजन है।

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