स्वैप फ़ाइलों का उद्देश्य क्या है?


72

जब मैं फ़ाइलों को संपादित करता हूं, विम नाम की फाइलें बनाता है , जो मुझे कष्टप्रद लगता है। से , मैं देखता हूं कि विकल्प स्वैप फाइलों के निर्माण को दबा देता है।.filename.swpvim -h-n

क्या कोई विमिंक निर्देश है जिसे मैं डिफ़ॉल्ट रूप से स्वैप फ़ाइलों को अक्षम करने के लिए उपयोग कर सकता हूं?

स्वैप फ़ाइलों का उद्देश्य क्या है, और उन्हें दबाने से मुझे क्या कार्यक्षमता याद आ जाएगी?


एफडब्ल्यूआईडब्ल्यू, मुझे स्वैप फाइलें परेशान करने वाली लगती हैं, और थोड़ी देर के लिए मैंने noswapfileनीचे दिए गए सुझाव का उपयोग करने की कोशिश की । मैंने अंततः दिया, और उस बंद कर दिया, हालांकि, क्योंकि स्पष्ट रूप से लाभ ने झुंझलाहट को पछाड़ दिया - buuuuuut मुझे वास्तव में याद नहीं है कि स्वैप फ़ाइल उपयोग को पुनर्स्थापित करने के लिए मुझे क्या आश्वस्त किया गया था। संभवतः मेरा कंप्यूटर दुर्घटनाग्रस्त हो गया और मैं खोई हुई कुछ फ़ाइलों को पुनर्स्थापित करने में असमर्थ था, जो स्वैप फ़ाइलों के साथ तुच्छ हो जाती थीं।
काइल स्ट्रैंड

जवाबों:


88

स्वैप फ़ाइलों के कारण

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

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

स्वैप फ़ाइलों को अक्षम करना

यदि आप स्वैप फाइल बनाना पूरी तरह से अक्षम करना चाहते हैं (जो कि मैं नहीं सुझाऊँगा), तो आप इसे set noswapfileअपने साथ जोड़ सकते हैं .vimrc। यह विकल्प का वैश्विक मूल्य निर्धारित करता है। फिर आप :setlocal swapfileविम को चलाते समय विशिष्ट बफ़र्स के लिए ओवरराइड कर सकते हैं ।

स्वैप फाइल का आयोजन

यदि आपकी समस्या आपके फ़ाइल सिस्टम के आसपास फैली अतिरिक्त फ़ाइलों के बारे में अधिक है, तो आप सभी स्वैप फ़ाइलों को एक स्थान पर एकत्र कर सकते हैं। उदाहरण के लिए, एक बनाने ~/.vim/tmpनिर्देशिका और फिर जोड़ने

set directory^=$HOME/.vim/tmp//

अपने को .vimrc'directory'विकल्प निर्देशिका जो विम कोशिश करते हैं और स्वैप फ़ाइल स्टोर करने के लिए प्रयोग करेंगे की एक सूची है।

निर्देशिका के नाम का ^=सिंटैक्स :setसूची के प्रमुख को प्रस्तुत करता है, इसलिए विम पहले उस निर्देशिका की जांच करेगा।

//निर्देशिका नाम के अंत में विम बताता है फ़ाइल का निरपेक्ष पथ का उपयोग करने के स्वैप फ़ाइल बनाने के लिए तो वहाँ विभिन्न निर्देशिकाओं से एक ही नाम के फ़ाइलों के बीच टकराव नहीं हैं।

ध्यान दें कि यह विम को ध्यान देने से रोकेगा जब एक ही फ़ाइल को संपादित करने के लिए कई उपयोगकर्ता प्रयास कर रहे हों। चूंकि स्वैप फ़ाइल मूल फ़ाइल के समान निर्देशिका में नहीं है, इसलिए अन्य उपयोगकर्ता के Vim को स्वैप फ़ाइल के बारे में नहीं पता होगा और उन्हें चेतावनी नहीं देगा कि यह पहले से ही संपादित किया जा रहा है।


4
लगातार-अब तक स्वैप फ़ाइलों का क्या लाभ है कि यह थोड़ी देर के लिए व्यर्थ हो गया है?
अल्फा_989

मैं उपयोग करता हूं vim-auto-save। क्या यह स्वैप फ़ाइलों की आवश्यकता को नहीं बताता है?
केविन

@ केविन यह निर्भर करता है। यदि प्लगइन हर परिदृश्य में एक बचत का कारण बन रहा है जो विम स्वैफाइल को लिख देगा, तो शायद। अन्यथा वहाँ अभी भी ऐसी अवधि होगी जहां बफर सहेजा नहीं गया है और एक स्वैपफाइल मदद कर सकता है।
जामसेन

@ Alpha_989 वे पूरक हैं। एक अदला-बदली आपको बिना सहेजे परिवर्तनों को पुनर्प्राप्त करने की अनुमति देती है। लगातार-पूर्ववत फ़ाइल आपको विम इतिहास में पूर्ववत इतिहास को पार करने की अनुमति देती है, लेकिन फ़ाइल केवल तभी लिखी जाती है जब आप सहेजते हैं।
जामसेन

केवल एक उदाहरण के लिए कोई स्वैप की स्थापना की कोई विधि? जैसे vim temp.txt --some-command-that-disable-swap? मेरा उपयोग मामला कुछ द्रष्टा है जो निर्देशिका में किसी भी परिवर्तन को देखता रहेगा, तभी तक मैं टकराव को रोकने के लिए स्वैप को निष्क्रिय करना चाहूंगा।
एनजी सीके लॉन्ग ऑक्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.