2009-06-28 16 views
9

में मुझे पता है कि मैं CTRL+XCTRL+O साथ omnifunc के माध्यम से CTRL+N & CTRL+P और कोड पूरा होने के माध्यम से शब्द पूर्णता प्राप्त कर सकते हैं। मैंने अतिरिक्त रूप से Supertab (बहुत अच्छा) की कोशिश की, क्योंकि मुझे टैब-पूर्ण करने के लिए उपयोग किया जाता है। यह सब ठीक काम किया। मैं टाइपिंग के दौरान संभावित मैचों को देखना चाहता हूं, इसलिए मैंने autocomplpop.vim भी कोशिश की, चुड़ैल बस यही करता है।वर्ड/कोड समापन विम

क्या मैं हालांकि पूरा करने के लिए, एक छोटे से मोड़ के साथ एक साथ दोनों का एक संयोजन होगा चाहते: मैं सुझाव पॉप अप के रूप में मैं टाइप करें (सिर्फ autocompop साथ की तरह) लेकिन जब मैं TABशब्द का उपयोग किया जाना चाहिए देखना चाहेंगे केवल विस्तार सबसे बड़ा आम मैच रहे हैं:

foo bar testor booze test baz teter 
te<TAB> 

बाद मैं 2 लाइन में te टाइप करें, पॉपअप test, teter और testor सुझाव देने चाहिए।

जब मैं TAB दबाता हूं, तो इसे कुछ भी नहीं करना चाहिए, क्योंकि te से अधिक सामान्य जमीन नहीं है। एक अतिरिक्त s टाइप करने के बाद और TAB दबाएं, इसे tes से test (क्योंकि यह सबसे छोटा आम जमीन है) और testor को TAB के बाद विस्तारित करना चाहिए।

संपादित: मैं और अधिक स्पष्ट होने की कोशिश ...

  • te<TAB>
    • कुछ नहीं करना है क्योंकि "हम" अगर एक 'टी' पता नहीं है (ते टी ईआर) या एक 'एस' (टी एस टी, टी एस टोर) का पालन करना चाहिए।
  • tes<TAB>
    • test करने का विस्तार करना चाहिए (क्योंकि है कि दोनों के लिए काम करता है - परीक्षण और testor - और टेटर अब एक संभव मैच है)।
  • test<TAB>
    • testor (तभी संभव मैच) का विस्तार करना चाहिए।

ठीक है, सुझाव पॉपअप सिर्फ बोनस है, लेकिन मैं वास्तव में TAB व्यवहार को देखने के लिए प्यार होता। उम्मीद है कि मैं यहाँ गूढ़ नहीं हो पा रहा हूं और आप कुछ ऐसा करने के लिए वीआईएम को कम करने के लिए कुछ स्क्रिप्ट-चाल या प्लगइन के साथ मेरी मदद कर सकते हैं।

+0

"परीक्षण " के लिए एक संभावित मैच "परीक्षण" नहीं है? इस तरह बैश इसका इलाज करता है ... (उस तीसरे मामले के अलावा, आपके उदाहरण बैश के समापन नियमों को दर्पण करते हैं ...) – Stobor

उत्तर

6
:set completeopt=longest,menu,preview 

शायद?

(मैं नहीं यकीन है कि अगर अपने बयान

"जब मैं टैब दबाते हैं, तो यह कुछ भी नहीं करना चाहिए, ते से अधिक नहीं आम जमीन है, क्योंकि" कर रहा हूँ अपने बाद में साथ

संघर्ष बयान

"testor करने के लिए एक 2 टैब के बाद।"

ऐसा लगता है कि उस बिंदु पर "परीक्षण" से अधिक सामान्य जमीन नहीं है ... जब तक आपका मतलब यह नहीं है कि पहला टैब सबसे लंबा आम जमीन पर जाता है, और उसके बाद के बाद के टैब दूसरे मैचों के माध्यम से चक्र होते हैं, तो आप किस मामले में मेरे ऊपर क्या है ...)

+0

यदि मैं 'पूरा सेट करें, सेट करें, मेनू, पूर्वावलोकन 'और टैब को पूरा करने के बाद टैब दबाएं 'परीक्षक' के लिए। वह नहीं है जो मैं पूरा करना चाहता हूं। – Brutus

+0

सुपरसियर पर किसी के पास एक समान प्रश्न था (http://superuser.com/questions/117490/vim-autocompletion-making-xu-expand-to-longest-match) और उन्होंने कहा कि सुपरटाब सबसे लंबे समय से गड़बड़ कर रहा था। क्या आपने सुपरटेब को अक्षम करने का प्रयास किया था? – idbrii

+0

: setopop = longest सेट करें, मेनू वह है जो आप चाहते हैं। – qed