सवाल मैकवीम / विम सभी बफर की सामग्री को बनाए रखता है (जैसे सब्लिमे टेक्स्ट)। स्वैप बचाओ?


टी एल; डॉ: क्या विम अपनी स्वैप फाइलों को स्टोर कर सकता है, और हर बार लोड पर स्वैप फाइलों और बफर के उसी सेट को लोड करता है?

मैं एक मैक (ओएस: मावेरिक) पर हूं, जहां कई एप्लिकेशन डेटा को किसी प्रकार के स्थानीय / रास्ते में रखता है भंडारण यह मशीन रीस्टार्ट / एप्लिकेशन क्रैश के बीच बहाल किया गया है।

द्वारा 'भंडारण', लेना शानदार पाठ उदाहरण के तौर पर, जैसे ही मैं एक नया टैब खोलता हूं, यह टैब की सामग्री को सहेजता है भले ही मैंने टैब को स्थायी रूप से स्थायी संग्रहण के लिए फ़ाइल के रूप में सहेजा नहीं है। तो अगर मैं एसटी को बंद करना था और इसे फिर से खोलना था (या यह / मशीन दुर्घटनाओं), तो यह बंद होने से पहले मेरे सभी टैब और सामग्री को पुनर्स्थापित कर देगा।

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

तथ्य यह है कि:
1. विम फ़ाइलों को स्वैप रखता है और निष्क्रियता के हर 200 स्ट्रोक / 4 सेकंड अपडेट करता है recover
2. विम में स्टार्टअप विकल्प हैं जो फ़ाइलों / स्वैप को खोलने की अनुमति देते हैं

मेरे लिए आश्चर्य की बात है कि विम / मैकवीम के पास यह नहीं है सामग्री प्रतिधारण (टीएम) सुविधा पहले से ही इसके सैकड़ों कॉन्फ़िगरेशन विकल्पों में से एक है?

अनुलेख मैं वर्तमान में 'फाइल ग्रुपिंग जैसी परियोजना' के लिए पूरी तरह से विम-सत्र का उपयोग करता हूं, लेकिन यह सहेजे गए बफर के लिए सामग्री को बरकरार नहीं रखता है

p.p.s. के साथ खेल रहा है :preserve विकल्प और cpoptions+=& .vimrc में। ऐसा प्रतीत नहीं होता है, मैकविम बंद होने पर स्वैप फ़ाइलों को अभी भी हटा दिया गया है, और MacVim फिर से शुरू होने पर कुछ भी नहीं खोला गया है


2
2018-01-23 07:23


मूल


क्या आप अपने लिए एक लिंक पोस्ट कर सकते हैं .vimrc? विशेष रूप से कोई भी भाग जो सत्रपंथियों का संदर्भ देता है? - Aaron D
चूंकि आप सब्लिमे टेक्स्ट के खिलाफ तुलना कर रहे हैं, क्यों अपने डिफ़ॉल्ट संपादक को सब्लिमेम नहीं बनाते? यदि आप EDITOR, vi, vim, GIT_EDITOR इत्यादि के लिए "/ usr / local / bin / subl -nw" उपनाम निर्यात करते हैं, तो आप हर समय उपलब्ध सब्लिमे के बारे में जो कुछ भी पसंद करते हैं, उसके पास हो सकता है। - SaxDaddy
@SaxDaddy। दो कारण। 1) विंटेज जबकि एक महान एसटी प्लगइन में अभी भी विम की समझ के स्तर की कमी है (उदा। मैक्रो संपादन) 2) वाणिज्यिक लागत। मैं इंटेलिजे आईडीईए में अपने अधिकांश कोड को संपादित करता हूं, जिसका अर्थ है कि मैं अधिकतर त्वरित संपादन के लिए वीआईएम का उपयोग करता हूं। एसटी के विशेषाधिकार के लिए $ 70 का भुगतान करना जब यह मेरा प्राथमिक संपादक शीर्ष पर थोड़ा सा नहीं लगता है। - snowbound
इसके अलावा, @ सैक्सडाडी। एसटी 3 में विम की तुलना में टाइपिंग अंतराल (2011 मैकबुक प्रो, आई 7, 8 जीबी, एसएसडी पर) है। - snowbound


जवाब:


आपके द्वारा वर्णित सत्र कार्यक्षमता वह है जो आप चाहते हैं, लेकिन आपको इसे बफर को सहेजने के साथ-साथ खुली फ़ाइलों और स्थितियों को सहेजने के लिए एक विकल्प पारित करने की आवश्यकता है। आप उपयोग कर सकते हैं :mksession इसके लिए।

हालाँकि, :mksession अभी भी मैन्युअल रूप से नियंत्रित है; यद्यपि आप कमांड को सुरक्षित / पुनर्स्थापित करने के लिए हॉटकी पर बाध्य कर सकते हैं, अगर आप कमांड को चलाने के लिए भूल जाते हैं, तो आप अपना सत्र खो देते हैं।

इस कारण से, मैं अनुशंसा करता हूं Session.vim वीम प्लगइन। यह (आपके .vimrc में कुछ अतिरिक्त विकल्पों के साथ) स्वचालित सत्र की बचत और बहाली होगी। विकल्पों की पूरी सूची पृष्ठ पर है। विशेष रूप से, आप इसे पास करने के लिए बताना चाहते हैं buffers विकल्प sessionoptions, के अनुसार यह पन्ना


2
2018-01-23 07:38



अरे @ हारून डी, मेरे पास सत्र-vim vim-session के माध्यम से स्थापित है (जो सत्र का एक दर्पण है। Vim: github.com/xolox/vim-session)। मुझे यकीन नहीं है कि मैं गलत विकल्प का उपयोग कर रहा हूं। क्या आप कह रहे हैं कि मंदी, या सत्र.विम बचा सकता है अंतर्वस्तु सहेजे गए बफर के? - snowbound
सुनिश्चित करने के लिए, आपका सुझाव buffers में है 'sessionoptions', "नो नेम" बफर को सहेजने और पुनर्स्थापित करने की सामग्री का कारण नहीं बनता है। असल में, buffers सूची में पहले से ही था। मैंने कहा set sessionoptions+=buffers मेरे लिए vimrc सुनिश्चित करने के लिए, और दोनों की कोशिश की :mksession/:source तथा :SaveSession/:OpenSession, लेकिन बफर सामग्री अभी भी खो गई है। - Rory O'Kane