मैकविम हर दूसरे आह्वान को अलग तरह से क्यों शुरू कर रहा है?


13

मैंने देखा कि जब मैं अपने मैकबुक पर आज कुछ काम करने के लिए बैठ गया था कि किसी समय में हाल ही में मेरी .gvimrcसेटिंग्स के संबंध में कुछ गड़बड़ हो गई थी : जब मैंने मैकविम लॉन्च किया, तो सब कुछ सामान्य लग रहा था सिवाय इसके कि मेरी खिड़की बहुत छोटी थी (लगभग डिफ़ॉल्ट आकार )। जिज्ञासु, मैंने कोशिश की verbose set columns?जिसने मुझे "180, अंतिम सेट ~ / .gvimrc" से कहा, भले ही खिड़की स्पष्ट रूप से 180 कॉलम चौड़ा नहीं थी । set columns=180अपेक्षित चौड़ाई के लिए विंडो को पुनर्स्थापित किया।

अपने आर सी फ़ाइलों के सामान्य डिबगिंग और बिसनेस के बाद, मैंने कुछ असामान्य देखा। मुझे यकीन नहीं है कि यह मेरे कॉलम आकारों से संबंधित है या नहीं लागू हो रहा है, या तो यह उत्सुक है और मैं इसका पता नहीं लगा सकता।

अगर मैं दौड़ता हूं: mvim -u NONE -c "set columns=100"मुझे एक खिड़की मिलती है: mvim १

यदि मैं फिर से उसी कमांड को चलाता हूं , तो मुझे यह मिलता है: mvim 2

verbose set co?रिपोर्ट 100 और 66, दोनों मामलों में, क्रमशः कह रही है "-सी तर्क से अंतिम सेट।" लॉन्च कमांड को दोहराने से विंडो स्थिति वैकल्पिक हो जाती है।

मैंने .viminfoरन बनाने की कोशिश की है ; इसका कोई असर नहीं हुआ।

मैं अब मैकविम स्नैपशॉट 74 का उपयोग कर रहा हूं, हालांकि मैं पहले के संस्करण पर था जब यह होने लगा और यह देखने के लिए अपग्रेड किया गया कि क्या यह सिर्फ एक संस्करण है। मैं 10.10.3 पर हूं, और यह संभव है कि यह व्यवहार मैकविम-विशिष्ट बग के कारण हो, जो कि ओएस अपडेट (जो कि हाल ही में हुआ था) के परिणामस्वरूप सामने आया है। हालांकि अगर मैं अपनी पत्नी के लैपटॉप पर मैकविम स्थापित करता हूं (उसी ओएस संस्करण को चला रहा हूं) तो व्यवहार पुन: पेश नहीं होता है।

मुझे हानि हो रही है। इस व्यवहार के कारण पृथ्वी पर क्या हो सकता है?


संपादित करें: निरंतर डिबगिंग के बाद, मैंने देखा है कि यह केवल इस तरह से पुन: पेश करता है यदि मेरे पास लैपटॉप से ​​जुड़ा बाहरी मॉनिटर है। यह मुझे विश्वास दिलाता है कि यह किसी प्रकार का बग है।

जवाबों:


16

कुछ घंटों के लिए मैकविम कोड आधार को हटाने के बाद, मुझे लगता है कि मैं देख सकता हूं कि ऐसा क्यों होता है।

जब MacVim शुरू होता है, तो यह पहले से सहेजी गई विंडो स्थिति को पढ़ता है NSUserDefaultsऔर उस स्थिति को पुनर्स्थापित करने का प्रयास करता है। इस बिंदु पर खिड़की वास्तव में अभी तक नहीं दिखाई गई है, और यह मूल है (संभवतः ओएस चयनित) डिफ़ॉल्ट है जो हमेशा 'मुख्य' स्क्रीन पर होता है। यदि विंडो की पिछली स्थिति एक अलग मॉनिटर पर थी, तो विंडो की स्थिति बदलने से एक "रिसाइज्ड" ईवेंट ट्रिगर हो जाएगा (यह संभव है कि यह नया हो, या बग हो, 10.10.3 में, जब तक कि संबंधित "रिसाइज़" ईवेंट नहीं होगा) उत्पन्न किया था)।

यह मैकविम को विम बैकएंड का आकार बदलने की कोशिश करने का कारण बनेगा, लेकिन यह राज्य के लिए प्रक्रिया के निष्पादन में बहुत जल्दी है जो कि प्रभावी रूप से निर्मित होने वाले आकार के प्रभाव के लिए उपयोग किया जाता है। इस प्रकार, मैकविम अनुरोध करता है कि विम खुद को प्रभावी रूप से एक डिफ़ॉल्ट मान है, जो अगली बार विंडो को सिकोड़ने का कारण बनता है, मैकविम को विम बैकएंड से रिसाइज का जवाब मिलता है (मैकविम विंडोज़ लज़ीली का आकार बदलता है)।


संपादित करें: यह परिवर्तन बग को ठीक करता है , मुझे लगता है। यह खिड़की के प्रस्तुत होने तक विंडो बैक में प्रचारित नहीं करने का कारण बनता है।


1
लिंक टूट गया है, जो एक शर्म की बात है क्योंकि यह दिलचस्प लगता है। (इसके अलावा: मुझे "स्पेलुनकिंग" शब्द का आपका उपयोग बहुत पसंद है): D
वाइल्डकार्ड

@Wildcard मैंने अपनी स्थानीय शाखा में कमिटमेंट के बजाय पीआर पर इंगित करने के लिए लिंक को अपडेट किया जिसे मैंने अंततः मैकविम की मुख्य रिपॉजिटरी के लिए प्रतिबद्ध होने के बाद डिलीट कर दिया।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.