मैंने "noswapsuck" नामक एक प्लगइन बनाया जो केवल स्वैप को सक्षम करता है जब बफर में सहेजे नहीं गए परिवर्तन होते हैं। एक बार परिवर्तन सहेजे जाने के बाद, स्वैपफाइल को साफ कर दिया जाता है। इसलिए, swapfiles जिसमें डिस्क पर फ़ाइल के समान सामग्री शामिल है उसे हटा दिया जाएगा।
इसे यहां लाओ: noswapsuck.vim
यह मेरे लिए अच्छा काम कर रहा है, लेकिन मैंने इसे पहले कभी प्रचारित नहीं किया, इसलिए मैं प्रतिक्रिया का स्वागत करूंगा।
लाभ:
- केवल स्वैफ़ाइल्स जो आपकी डिस्क पर बने रहते हैं, वे महत्वपूर्ण स्वैफ़िले होंगे जो वास्तव में फ़ाइल से भिन्न होते हैं!
नुकसान:
यदि बफ़र में स्वैफ़ाइल है, तो यह पता नहीं चलेगा कि फ़ाइल पहले खोली गई है। यह तभी पता चलेगा जब swapfile
सक्षम किया जाएगा, जब आप बफर को संपादित करना शुरू करेंगे। यह गुस्सा देर से है, और आपको बाधित करेगा। (हल: हम अब पहले से मौजूद स्वैप के लिए जाँच करते हैं जब बफर को खोला जाता है, अस्थायी रूप से swapfile
विकल्प को फिर से चालू करके ।)
यदि आप ऐसे वातावरण में काम कर रहे हैं, जहाँ आप डिस्क-राइट्स को कम करना चाहते हैं (उदाहरण के लिए कम बिजली, या किसी नेटवर्क पर रखी गई फ़ाइलें, या किसी बड़ी फ़ाइल को संपादित करना) तो हर फाइल पर स्वैप फ़ाइल को हटाना और फिर से बनाना आदर्श नहीं है। सहेजें और संपादित करें। ऐसी स्थितियों में, आप कर सकते हैं:
:let g:NoSwapSuck_CloseSwapfileOnWrite = 0
जो लिखने के बाद स्वैपफाइल रखेगा, लेकिन बफर को खो देने पर भी इसे हटा देगा।
वैसे, मेरे पास एक और छोटा प्लगइन है :DiffAgainstFileOnDisk
जो हिट करने के बाद बहुत उपयोगी हो सकता है (r)ecover
, यह जांचने के लिए कि क्या आपके द्वारा पुनर्प्राप्त बफर मौजूदा फ़ाइल से नया या पुराना है, या इसके समान है।