2011-01-17 6 views
5

मैं प्रोग्राम पायथन के लिए वीआईएम का उपयोग शुरू कर रहा हूं। मैंने कुछ मुद्दों में भाग लिया है, उम्मीद है कि कोई मेरी मदद कर सकता है।वीआईएम + पायथन - "जीडी" कमांड ठीक से काम नहीं कर रहा है

"gd" कमांड आपको पहले स्थान पर ले जाने वाला माना जाता है, एक चर को वर्तमान फ़ंक्शन में परिभाषित/उपयोग किया जाता है। जो मैं समझता हूं उससे, यह "[[" फ़ंक्शन के शीर्ष पर जाने के लिए, फिर परिवर्तनीय नाम की खोज करने जैसा ही है।

समस्या यह है कि, जब मैं इसे पायथन फ़ंक्शन में आज़माता हूं, तो vim पूरी फ़ाइल में चर की पहली घटना पाता है।

ऐसा क्यों होता है कि यह क्यों होता है/मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

3

मुझे लगता है कि समस्या इस तरह से है कि विम एक समारोह का इलाज करता है। [[ के लिए दस्तावेज़ से:

      *[[* 
[[   [count] sections backward or to the previous '{' in 
      the first column. |exclusive| 
      Note that |exclusive-linewise| often applies. 

जब तक एक वर्ग किसी भी तरह (मैं इस रूप में वे वर्गों nroff दो अक्षर का होना चाहिए रहे हैं संभव है आश्वस्त नहीं हूँ) कहीं अजगर फ़ाइलों के लिए विशेष रूप से परिभाषित किया गया है, इस समझेंगे कि पहले कॉलम में ओपन-ब्रेस होना चाहिए, जो कि अजगर फाइलों के लिए प्रासंगिक नहीं है।

मैं सुझाव देता हूं कि विम मेलिंग सूची पर यह पूछने के लिए कि क्या कोई प्लगइन्स या कार्य-आसपास है या नहीं। वैकल्पिक रूप से, अगर आप इस तरह एक मानचित्रण निर्धारित कर सकते हैं:

nmap gd :let varname = '\<<C-R><C-W>\>'<CR>?\<def\><CR>/<C-R>=varname<CR><CR> 

यह एक समारोह के साथ और अधिक सुंदर ढंग से किया जा सकता है, लेकिन यह बस एक त्वरित हैक कि काम करना चाहिए था। यह एक समारोह है कि चर 'VARNAME' शब्द कर्सर पर है धारण करने के लिए सेट करने के लिए gd नक्शे, डीईएफ़ के लिए पिछड़े खोज करता है और उसके बाद चर के लिए आगे खोज:

:let varname =    " Variable setting 
    '\<      " String start and word boundary 
    <C-R><C-W>     " Ctrl-R, Ctrl-W: pull in the word under the cursor 
    \>'      " Word boundary and string end 
    <CR>      " Enter - finish this command 
    ?       " Search backwards for... 
    \<def\>     " def but not undefined etc (using word boundaries) 
    <CR>      " Enter - Perform search 
    /      " Now search forward 
    <C-R>=      " Pull in something from an expression 
    varname<CR>    " The expression is 'varname', so pull in the contents of varname 
    <CR>      " Enter - perform search 
+0

"[[" * * पिछली डीफ़/कक्षा की खोज के लिए पायथन फाइलों में काम करता है। मैं जो कह सकता हूं उससे, इसे "पायथन_जंप" करने के लिए ftplugin में "python.vim" फ़ाइल में फिर से परिभाषित किया गया है। ए (संबंधित?) समस्या यह है कि, "[[" सामान्य मोड में ठीक काम करता है, यह दृश्य मोड में अच्छी तरह से काम नहीं करता है। मुझे लगता है कि वहां बस एक बग है, लेकिन मैं अभी भी उम्मीद कर रहा हूं कि मुझे कुछ याद आ रहा है और बेवकूफ है। –

+0

मुझे लगता है कि [['कस्टम मैपिंग के कारण पायथन फाइलों में काम करता है, लेकिन' gd' '[[' 'के अंतर्निहित कार्यान्वयन पर आधारित है। – DrAl

2

मैं अपने विम में VARNAME को फिर से परिभाषित नहीं किया विन्यास, और यह अच्छा काम करता है, लेकिन मेरे पास पाइथन के साथ संकलित है। शायद यह समस्या है?

क्या आपके पास पाइथन समर्थन के साथ संकलित वीआईएम संस्करण 7.x स्थापित है? इसके लिए, VIM में :python print “hello, world” दर्ज करें। यदि आपको E319: Sorry, the command is not available in this version, जैसे त्रुटि संदेश दिखाई देता है तो यह एक नया प्राप्त करने का समय है।

+0

यह आश्चर्यजनक है, मुझे नहीं पता था कि आप कमांड लाइन से किसी दुभाषिया को बुला सकते हैं! पारितोषिक के लिए धन्यवाद! आप यह भी देख सकते हैं कि 'संस्करण' टाइप करके vim में संकलित किया गया है और पाइथन ध्वज मौजूद है या नहीं। –

+0

मेरे पास पाइथन समर्थन नहीं है। मैं विंडोज़ पर हूं, और मैंने अभी विम डाउनलोड पेज पर मिले सादे पुराने इंस्टॉलर का उपयोग किया है। मैं पायथन समर्थन के साथ एक संस्करण कैसे प्राप्त करूं? –

+0

मुझे लगता है कि क्रीम से विभिन्न एन्हांसमेंट विम के साथ पूर्व-कॉन्फ़िगरेशन और बंडल करने का सबसे आसान तरीका है। "क्रीम के बिना विंडोज विम इंस्टॉलर" है (मुझे क्रीम लेआउट पसंद नहीं है और यह सब गुई सामान है - यह मुझे धीमा कर देता है, लेकिन इसके साथ चलने वाला विम संस्करण अच्छा है)। http://cream.sourceforge.net/download.html –

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