2012-09-25 14 views
7

मैं उमंटू 12.04.1 (एलटीएस) पर ctags 5.9 ~ svn20110310 के साथ vim 7.3 में PHP के लिए ओमनी पूर्णता सेट अप करने का प्रयास कर रहा हूं लेकिन मैं एक बहुत ही अजीब मुद्दे में भाग रहा हूं जहां पूरा करने के लिए मूल रूप से विभिन्न भविष्यवाणियां प्रदान की जाती हैं एक ही कक्षा के उदाहरण।Omnicompletion उपयोगी भविष्यवाणियों को रोकता है

मेरे पास निम्न दो फ़ाइलें:

// Foo.php 
class Foo { 
     public function do_stuff() { 
       echo 'Working...'; 
     } 
} 

// index.php 
require 'Foo.php'; 
$f = new Foo(); 
$f->[cursor position 1] 

$g = new Foo(); 
$g->[cursor position 2] 

जब कर्सर की स्थिति 1 में है और मैं लिए Ctrl +एक्सCTRL + हे यह हम के रूप में do_stuff( के साथ लाइन comples उम्मीद करेंगे। लेकिन जब मैं दूसरे स्थान पर प्रेस CTRL + एक्सCTRL + हे मुझे लगता है कि key, next, rewind साथ शुरू होता है पूर्वानुमानों की सूची मिलता है। मैं क्या गलत कर रहा हूं?

+0

जब आप दूसरे स्थान पर Ctrl + एक्स Ctrl + हे प्रेस सब यह पहले कोड है? –

+0

हां, बिल्कुल। '$ f -> [कर्सर स्थिति 1]' 'f f>> do_stuff() में बदल जाता है;' –

+0

क्या 'Foo'' Iterator 'इंटरफ़ेस लागू करता है? – philix

उत्तर

4

संपादित करें: अपने विशिष्ट मुद्दे के संबंध में, आप phpcomplete.vim के एक पुराने संस्करण है, तो यह संभव है कि आप केवल ठीक से बंद एक चर या तो एक विशेष phpdoc टैग (see this question) के साथ यह चिह्नित करके पूरा कर सकते हैं या परिवर्तनीय घोषित करने के बाद अपनी टैग फ़ाइल को पुन: उत्पन्न करके।

सभी संभावनाओं में, आप कुछ भी गलत नहीं कर रहे हैं; सीटीएजी में PHP समर्थन बेहद बुनियादी और बहुत कठोर नहीं है, दुर्भाग्यवश इसका मतलब है कि विम समर्थन की भी कमी है।

ctags/php.c

यह है कि: ctags मॉड्यूल पर एक त्वरित दृष्टि समस्या को दिखाता है। अपेक्षाकृत बुनियादी नियमित अभिव्यक्तियों में से कुछ। नीचे की पार्सर सामग्री अब और उपयोग नहीं की जाती है, और दुखद रूप से बहुत लंबे समय तक नहीं रहा है।

मुद्दा कंपाउंडिंग तथ्य विम में PHP के लिए मानक omnicomplete समारोह में सबसे अच्छा hackish है कि है, यह कहने के लिए पर्याप्त है कि इसमें सभी खुली खिड़कियों के बीच अपनी समापन प्रक्रिया (एक अभ्यास स्पष्ट रूप से विम प्रलेखन द्वारा निंदा की गई) के हिस्से के बीच स्विचिंग शामिल है। खुद के लिए एक नज़र डालें:

phpcomplete.vim/autoload/phpcomplete.vim

अब मैं एक लंबे समय के लिए विम में भयानक पीएचपी पूरा होने के साथ संघर्ष किया है और निर्धारित किया है कि एक पूर्ण ओवरहाल से कम नहीं संतोषजनक परिणाम का उत्पादन करेगा। मैं ctags dev मेलिंग सूची में शामिल हो गया हूं, और मैं विम के सर्वव्यापी कार्य को ठीक से करने के लिए आगे बढ़ने से पहले PHP समर्थन को बेहतर बनाने की योजना बना रहा हूं जैसा कि यह एक व्याख्या की गई भाषा में हो सकता है। दुर्भाग्य से, समाधान तब तक इंतजार करना है जब तक कि समर्थन बेहतर न हो, या इसे स्वयं ठीक करें। (-> [कर्सर की स्थिति] `` $ च सहित) मान्य कोड

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