विम ऑटोसवे करता है?


13

से :help swap-file:

स्वेपफल का अद्यतन करना

स्वैप फ़ाइल 200 अक्षरों को टाइप करने के बाद या जब आपने चार सेकंड के लिए कुछ भी नहीं टाइप किया हो, तब अपडेट किया जाता है। यह केवल तब होता है जब बफर बदल गया था, न कि जब आप केवल चारों ओर चले गए। इसका कारण यह है कि इसे हर समय नहीं रखा जाता है क्योंकि यह सामान्य काम को बहुत धीमा कर देगा। आप 'updatecount' विकल्प के साथ 200 वर्ण गणना बदल सकते हैं। आप 'updatetime' विकल्प के साथ समय निर्धारित कर सकते हैं। मिलीसेकंड में समय दिया जाता है। स्वैप फाइल पर लिखने के बाद विम फाइल को डिस्क में सिंक करता है। इसमें कुछ समय लगता है, विशेष रूप से व्यस्त यूनिक्स प्रणालियों पर। यदि आप यह नहीं चाहते हैं, तो आप 'swapsync' विकल्प को एक रिक्त स्ट्रिंग पर सेट कर सकते हैं। काम खोने का जोखिम हालांकि बड़ा हो जाता है। कुछ गैर-यूनिक्स प्रणालियों (MS-DOS, Amiga) पर स्वैप फ़ाइल बिल्कुल नहीं लिखी जाएगी।

इससे मेरे कुछ प्रश्न हैं:

  1. इसका मतलब यह है कि विम समय-समय पर आपके काम को स्वचालित करता है?

  2. "स्वैप फाइल पर लिखने के बाद विम फाइल को डिस्क में सिंक करता है।" इसका क्या मतलब है? क्या यह फ़ाइल को पहले मेमोरी में और फिर डिस्क पर लिखा जा रहा है या यह कुछ और है?

  3. कहें कि मैं क्लास नोट्स ले रहा हूं: मैं तेजी से लिखता हूं और मुझे इन्सर्ट मोड छोड़ने की बहुत कम जरूरत है। लेकिन कई बार मैं अपने काम को बचाने के लिए नॉर्मल में बदल जाता हूं। क्या मुझे यह करने की आवश्यकता है या विम मुझे यह सुनिश्चित करने की ज़रूरत है कि मेरा अधिकांश काम भले ही इन्सर्ट मोड न छोड़ें?

जवाबों:


9
  1. हाँ यह स्वैप फ़ाइल को बचाता है।

इसे महसूस करने के लिए आप एक त्वरित परीक्षण कर सकते हैं । एक निर्देशिका में जाओ। vim notest.txtकुछ पाठ कहो और लिखो। आपको फ़ाइल को सहेजना भी नहीं है।

यदि आप कार्यशील निर्देशिका में फ़ाइलों को सूचीबद्ध करते हैं, तो आपको एक स्वैप फ़ाइल मिलेगी। इसे एक अलग निर्देशिका में कॉपी करें (जहां आपके पास कोई "नोट्स.टेक्स्ट" फ़ाइल नहीं है, जैसा कि कहें vim notest.txt

आपको स्वैप मौजूदा के बारे में एक नोट मिलता है, इसे संशोधित किया जा रहा है, और खुले के विकल्प केवल पढ़ने के लिए, पुनर्प्राप्त करें आदि पुनर्प्राप्त करें और वॉइला चुनें! आपकी फ़ाइल की "कॉपी"।

  1. हां, स्मृति में स्वैप आयोजित किया जाता है।

जब विम एक फाइल पढ़ता है तो यह रैम में जुड़ जाता है। यह मौजूदा और नई (अभी भी बिना सहेजे गए फ़ाइलों) दोनों के लिए है। स्वैप सहेजने के बाद इसे डिस्क पर फ्लश किया जाता है। एचडीडी। राम से।

  1. हां और ना।

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

संक्षेप में यह व्याख्यान के समाप्त होने पर बचाने के लिए पर्याप्त है। यदि किसी वर्ग के बीच में कभी भी कारण के लिए प्रणाली को रोकना चाहिए, तो काम वहां तक ​​स्वैप में होता है।

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


अलग नोट के रूप में। कम से कम जब स्वैप के लिए वर्किंग डायरेक्टरी का उपयोग करते हैं, तो पुनर्प्राप्ति के लिए स्वैप फ़ाइल स्थान अज्ञेयवादी है। इस तरह के रूप में आप कर सकते हैं नकल एक नए स्थान पर स्वैप फ़ाइल और ठीक हो एक के रूप में फ़ाइल नई फ़ाइल। केवल ध्यान दें कि फ़ाइल-नाम हार्ड कोड स्वैप में है। जैसा कि आप नहीं कह सकते:

cp .foo.txt.swp .bar.txt.swp

तथा

vim bar.txt

और स्वैप फ़ाइल की अपेक्षा करें foo.txt

यदि आप बहुत रुचि रखते हैं तो आप (* निक्स पर) कर सकते हैं:

xxd -s 108 -l 800 -ps .foo.txt.swp | xxd -r -p

मूल फ़ाइल के कुछ पथ के साथ (पथ के साथ) पाने के लिए। जैसा कि आप देखेंगे पूरा रास्ता जोड़ दिया गया है, जैसे:

~user/blah/blah/notes.txt

लेकिन स्वैप चेक पर केवल बेसन का उपयोग किया जाता है।

उस संबंध में आप vim -rविकल्प भी देख सकते हैं - जो वर्तमान और निचली निर्देशिकाओं में स्वैप फ़ाइलों को सूचीबद्ध करता है। :h crash-recoveryउप-विषयों के साथ देखें ।


0

जब भी पाठ बदला जाए तो बफर को सहेजना मेरे लिए ठीक है:

autocmd TextChanged,TextChangedI <buffer> silent write

मैंने इसे यहां पाया । इससे मेरा काम बनता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.