2012-01-08 9 views
14

मैं प्रोग्रामिंग के लिए vim का उपयोग कर रहा हूँ। दिन की शुरुआत में मैं एक फाइल खोलूंगा और कुछ विंडो स्प्लिट करने के लिए आगे बढ़ूंगा और कुछ फ़ाइलों को बफर में खोलूंगा ताकि वे आसानी से उपलब्ध हों। हाल ही में जब तक यह अभी काम नहीं किया है।खिड़की विभाजन क्यों मजबूती से मजबूर कर रहा है?

पिछले हफ्ते में, हालांकि, कुछ बदल गया; मेरे लिखने वाले बफर में से एक को पढ़ने के लिए स्विच किया जा रहा है और मुझे नहीं पता कि क्यों। यहाँ आदेशों के अनुक्रम है:

  1. ओपन fileA.h
  2. vsplit ./
  3. खुला fileA.cpp
  4. Cw fileA.h
  5. एसपी ./
  6. वाली विंडो पर स्विच करने के Cw

चरण 1-4 के लिए सभी विंडोज संपादन योग्य हैं। जब मैं चरण 5 निष्पादित करता हूं तो नई फ़ाइल ब्राउज़िंग विंडो केवल पढ़ने के लिए (अपेक्षित के रूप में) होती है, लेकिन अब विंडो होल्डिंग फ़ाइल ए.पी.पी.पी. को भी पढ़ने के रूप में चिह्नित किया जाता है। fileA.h अभी भी संपादन योग्य है। ये क्यों हो रहा है?

मुझे और भी भ्रमित करने के लिए, अगर मैं चरण 4 नहीं करता हूं तो कोई समस्या नहीं है (यानी मैं फ़ाइल ए के बजाय विंडो होल्डिंग फ़ाइल ए.पी.पी.पी. विभाजित करता हूं)। साथ ही, यदि मैं फ़ाइल ब्राउज़र में विभाजित करने के बजाय चरण 5 में 'sp fileB.h' करता हूं तो पहले कोई समस्या नहीं है।

+2

क्या प्लगइन्स आप उपयोग कर रहे हैं? सामान्य रूप से, हस्तक्षेप प्लगइन्स को खत्म करने का प्रयास करें। मेरा अनुमान है, आप एनईआरडीटी की तरह कुछ उपयोग कर रहे हैं और यह कुछ अन्य प्लगइन के मैपिंग्स में हस्तक्षेप करता है – sehe

+0

क्या यह अभी भी 'vim -u NONE' के साथ होता है? यदि नहीं, तो @ शायद वह सही है। – ephemient

उत्तर

34

ऐसा लगता है कि यह netrw प्लगइन में एक बग हो सकता है।

  • v140 (MacPorts vim में शामिल: 7.3-353)
    मैं दो विम 7.3 के बनाता है (MacPorts vim 7.3-353, और MacPorts MacVim "snapshot64" 7.3-390) के साथ netrw के कई संस्करण के साथ परीक्षण किया केवल MacPorts vim build के साथ परीक्षण किया गया।
  • v141
  • v142 (vim.org/scripts netrw page से) (vim.org/scripts netrw पेज से)
  • v143 (MacPorts MacVim में शामिल: 7.3-390)
    केवल साथ MacPorts MacVim निर्माण परीक्षण किया गया।
  • v144b (रिलीज netrw author’s Vim page से)

आप :let g:loaded_netrwPlugin के साथ अपने सक्रिय netrw संस्करण की जांच कर सकते हैं। जब अपने परिदृश्य के पुनरुत्पादन v142 सभी के माध्यम से

v140 उचित व्यवहार था:

  • केवल netrw बफर (sp . से; दाईं ओर, ऊपरी विंडो) है केवल पढ़ने के लिए।
    बाईं ओर विंडो में fileA.cpp बफर केवल पढ़ने के लिए नहीं रहता है।

    • दोनों netrw बफर (दाईं ओर, ऊपरी विंडो) और fileA.cpp बफर (बाईं ओर) केवल पढ़ने के लिए हो जाते हैं:

    v143 और v144b के साथ मैं अपने व्यवहार पुन: पेश करने में सक्षम था।

  • इसके अतिरिक्त (यानी।ओपी द्वारा रिपोर्ट नहीं की गई, लेकिन प्रतीत होता है), बाईं ओर fileA.cpp विंडो सक्रिय विंडो बन जाती है।
    आम तौर पर, दाएं तरफ, ऊपरी खिड़की (sp . से एक) सक्रिय होना चाहिए।

fileA.cpp विंडो मूल रूप से नेट्रू विंडो (vsp . से) थी। मेरा अनुमान है कि v143 और v144b में कुछ पुरानी खिड़की को किसी कारण से रीसेट करने में थोड़ा अधिक उत्साही है (शायद यह उस खिड़की को छूना नहीं चाहिए)। sp fileB.h netrw का आह्वान न करके समस्या से बचाता है (यानी समस्या विभाजन विंडो के साथ नहीं है, लेकिन कुछ ऐसा है जो netrw करता है जब यह निर्देशिका सूची बफर बनाता है)।


आपकी समस्या netrw से आ रही है, तो (यानी अपने व्यवहार मेरी विवरण से मेल खाती है, और अपने निर्देशिका लिस्टिंग बफ़र्स पाठ Netrw Directory Listing और (उदाहरण के लिए) (netrw v143) दूसरे पर है लाइन मानते हुए कि आपके अक्षम नहीं है netrw बैनर) , तो आप netrw (यानी v142) के पुराने (?) संस्करण को स्थापित करके इसे ठीक करने में सक्षम हो सकते हैं।

netrw को "vimball archive" के रूप में पैक किया गया है। विमबॉल प्लगइन विम 7.0 और बाद में आता है। आप इसे अपने runtimepath (आमतौर पर ~/.vim) में पहली निर्देशिका में स्थापित करने के लिए एक विमबॉल फ़ाइल का स्रोत बनाते हैं।

:e /path/to/netrw.vba.gz 
:so % 
:q 

आप pathogen उपयोग कर रहे हैं अपने विम प्लगइन्स अलग करने के लिए (अत्यधिक की सिफारिश की!), तो आप इसके बजाय एक बंडल निर्देशिका के लिए स्थापित कर सकते हैं:

:e /path/to/netrw.vba.gz 
:UseVimball ~/.vim/bundle/netrw 
:q 
+2

यह कुछ विश्लेषण प्रयास है, +1 – sehe

+0

बहुत बढ़िया प्रतिक्रिया! ऐसा लगता है कि मेरे पास netrw का v143 है। आपके निर्देशों के बाद मैंने 142 तक डाउनग्रेड किया और अब यह काम कर रहा है। एफवाईआई, मैंने fileA.cpp grabbing फोकस के साथ व्यवहार देखा था। मैं बस उस विवरण को रिकॉर्ड करना भूल गया। – ryan0270

+0

क्रिस आपके उत्कृष्ट उत्तर के लिए धन्यवाद। निदान सहायता और एक विस्तृत समाधान - बहुत उपयोगी। –

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