2011-06-18 7 views
11

enter image description hereविम में टाइप करते समय सरणी विकल्पों के लिए ऑटो-सुझाव कैसे प्राप्त करें?

मान लीजिए कि मैं vim में एक .py फ़ाइल में

a = [1, 2] 

टाइप करें और जब मैं टाइप करने दें "एक।" और टैब दबाएं, मैं सूचियों से संबंधित सुझाव मेनू प्राप्त करना चाहता हूं।

रॉबिन की टिप्पणी के जवाब में 1 संपादित करें: मुझे लगता है कि यह विम में संभव है, क्योंकि एक प्लगइन है जो जांचता है कि दिया गया पाइथन कोड एक वैध कोड है (मुझे नहीं पता कि प्लगइन क्या कहा जाता है)। एक नज़र डालें:

enter image description here

उत्तर

7

vim के हाल के संस्करणों pythoncomplete नामक एक omnicompletion स्क्रिप्ट के साथ आते हैं।

एक अजगर फ़ाइल खोलें, और टाइप

:set completefunc? 

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

completefunc= 

पर वापस आते हैं तो वर्तमान में कोई पूर्णता सेट नहीं है।आप pythoncomplete सेट

:set completefunc=pythoncomplete#Complete 

टाइप करके पूरा होने के समारोह हो सकता है और आप

autocmd FileType python set completefunc=pythoncomplete#Complete 

अब (अपने vimrc में) इस सेट कर सकते हैं का उपयोग कर अजगर फ़ाइलों के लिए डिफ़ॉल्ट होना करने के लिए जब आप vim में हैं नीचे दिखाया गया है, तो आप Ctrl + XCtrl + O का उपयोग कर omnicomplete उपयोग कर सकते हैं और आप एक पॉपअप मेनू मिलना चाहिए:

list completion

तुम भी साथ डालने मोड में टैब कुंजी को यह बाध्य कर सकते हैं (अपने vimrc में):

inoremap <Tab> <C-x><C-o> 

लटकती दिखाई देने वाले मेनू के साथ बातचीत के बारे में और अधिक जानकारी प्राप्त करने के लिए, कोशिश

:help ins-completion 
+0

मुझे लगता है कि यह जवाब है। मेरे पास एक और सवाल है, हालांकि: "मैं शीर्ष पर खुलने वाली अतिरिक्त प्रलेखन विंडो से स्वचालित रूप से कैसे छुटकारा पा सकता हूं ([स्क्रैच] [पूर्वावलोकन])"। –

+2

जांचें: पूर्णतया सेट करें? विकल्प 'पूर्वावलोकन' में पूर्वावलोकन विंडो विंडो में डॉकस्ट्रिंग के साथ दिखाई देती है। यदि आप पूर्वावलोकन के बिना पूर्णांक सेट करते हैं तो यह अब प्रकट नहीं होना चाहिए। – actionshrimp

+2

@Spiritwalker http://info.birnamdesigns.com/wiki/Vim_close_preview_window_after_omnifunc_selection भी एक टिप के लिए देखें जब आप सम्मिलित मोड छोड़ते हैं या अपना कर्सर ले जाते हैं (मैं सम्मिलित मोड विधि पसंद करता हूं) –

3

एक अजगर आईडीई के रूप में विम की स्थापना पर कई ब्लॉग पोस्ट में से एक पढ़ें। शुरू करने के लिए Here's one। विशेष रूप से, आप OmniComplete समारोह में रुचि रखते हैं।

यह कीस्ट्रोक Ctrl-XCtrl-ओ को डिफ़ॉल्ट रूप से बाध्य है, लेकिन आप टैब कुंजी के लिए यह rebind कर सकते हैं।

ध्यान दें कि यह एक चर के प्रकार के प्रति संवेदनशील नहीं है। यदि आप टाइप करते हैं तो यह आपके लिए पूरा हो सकता है:

string.<ctl-x><ctl-o> 

आपको स्ट्रिंग ऑब्जेक्ट विधियों की एक सूची मिल जाएगी।

x = "a string" 

x.<ctl-x><ctl-o> 

vim पता नहीं होगा कि चर x एक स्ट्रिंग रखती है, और नहीं तरीकों की एक सूची की आपूर्ति करने में सक्षम हो जाएगा: लेकिन आप की तरह अपने प्रश्न कुछ में वर्णित के रूप में यदि आप करते हैं।

omnicomplete पर जानकारी के लिए:

:help omnifunc 
+0

तो यह संभव नहीं है? –

+1

@Spiritwalker यदि यह संभव है, तो मुझे नहीं पता कि यह कैसे करें। मैं वास्तव में एक और जवाब का स्वागत करता हूं जो मुझे गलत साबित कर सकता है, क्योंकि यह काफी उपयोगी होगा। –

+1

यह भी देखें http://www.mohdshakir.net/2007/12/27/enable-vim-code-python-auto-complete –

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

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