2013-03-03 2 views
8

के साथ पूरा नहीं हुआ मैंने जेडी-विम की पढ़ाई पढ़ी। https://github.com/davidhalter/jediजेडीआई-वीम ओमनी पूर्ण मानक लाइब्रेरी

ओमनी के गैर-मानक पुस्तकालय (Django) के साथ पूरा करने के स्क्रीनशॉट हैं।

मैंने डीजेंगो को पाइप द्वारा स्थापित किया और डीजेगो के ओमनी पूर्णता का परीक्षण करने के लिए सटीक कोड की कोशिश की, लेकिन यह काम नहीं करता है।

Omni completion (^O^N^P) Pattern not found. 

मानक पुस्तकालय की ओमनी पूर्णता सही काम कर रही है।

मैं आमतौर पर कुछ गैर मानक पुस्तकालय का उपयोग कर रहा हूं इसलिए मैं उन पुस्तकालयों के साथ ओमनी पूर्णता का उपयोग करना चाहता हूं।

क्या मुझे गैर-मानक पुस्तकालयों के साथ ओमनी पूर्णता का उपयोग करने के लिए कुछ कॉन्फ़िगरेशन करना चाहिए?

+0

कृपया 'omnifunc' सेट करें और 'संदेश' –

+0

शायद प्रासंगिक: http://stackoverflow.com/questions/2084875/vims-omnicompletion-with-python-just-doesnt-work। संक्षेप में, जांचें कि ': py print (sys.path)' दिखाता है। – Yosh

उत्तर

2

अधिकांश तीसरे पुस्तकालयों को बॉक्स से बाहर काम करना चाहिए, Django स्वत: पूर्णता के साथ इतना अच्छा नहीं है, आपको अपने पर्यावरण में परिवर्तनीय DJANGO_SETTINGS सेट होना चाहिए, अन्यथा अधिकांश आयात अनुचित रूप से कॉन्फ़िगर किए गए अपवाद को बढ़ाएंगे और स्वत: पूर्णता काम नहीं करेगी ।

आप में virtualenv आप इस चर सेट कर सकते हैं, या अपने खोल में एक उपनाम, या कुछ इस तरह का उपयोग कर अपने .vimrc में साथ:

function FindDjangoSettings() 
    if strlen($VIRTUAL_ENV) && has('python') 
    let output = system("find $VIRTUAL_ENV \\(-wholename '*/lib/*' -or -wholename '*/install/' \\) -or \\(-name 'settings.py' -print0 \\) | tr '\n' ' '") 
    let outarray= split(output, '[\/]\+') 
    let module = outarray[-2] . '.' . 'settings' 
    let syspath = system("python -c 'import sys; print sys.path' | tr '\n' ' ' ") 
    " let curpath = '/' . join(outarray[:-2], '/') 

    execute 'python import sys, os' 
    " execute 'python sys.path.append("' . curpath . '")' 
    " execute 'python sys.path.append("' . syspath . '")' 
    execute 'python sys.path = ' . syspath 
    execute 'python os.environ.setdefault("DJANGO_SETTINGS_MODULE", "' . module . '")' 
    endif 
endfunction 
autocmd FileType python call FindDjangoSettings() 

मतलब यह है कि आप अपनी परियोजनाओं के लिए virtualenv उपयोग कर रहे हैं, और हो सकता है अगर आप किसी ऐसे वर्चुअलनेव का उपयोग कर रहे हैं जो django नहीं है तो आपको परेशान करें।

मैं आपको you complete me plugin में एक नज़र डालने की भी सलाह देता हूं, यह एक शानदार पूर्ण प्लगइन है, यह जेडीई के प्रतिस्थापन नहीं है, वास्तव में, इसमें जेडई पाइथन पूर्ण होने की निर्भरता है।

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