नोट: आपने यह नहीं कहा है कि आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं। निम्नलिखित एक यूनिक्स शेल के साथ काम करता है लेकिन अगर विंडोज चल रहा है, तो आप नंगे-हड्डियों Cygwin या कुछ अन्य शेल डाउनलोड कर सकते हैं।
मैं आपके जैसा ही करता था, :e
पुनर्प्राप्ति फ़ाइल को हटाने के लिए विकल्प प्राप्त करने के लिए उसी फ़ाइल को फिर से खोलने के लिए चलाएँ । क्रैश या अनपेक्षित कंप्यूटर पुनरारंभ होने के बाद, मैं सभी अवशेष Vim पुनर्प्राप्ति फ़ाइलों vim -r
को स्वैप फ़ाइलों पर चलाकर और पुनर्प्राप्ति को आगे बढ़ने देता हूं ।
जब फाइलें नहीं बदली हैं
यदि फ़ाइलें परिवर्तित नहीं हुई हैं, तो मैं तुरंत पुनर्प्राप्ति फ़ाइल को हटाना चाहता हूं। यह बहुत अच्छा होगा यदि विम स्वचालित रूप से ऐसा कर सकता है लेकिन दुर्भाग्य से, ऐसा नहीं है।
जब फाइलें बदल गई हैं
यदि फाइलें बदल गई हैं, तो मैं DiffOrig
मूल और पुनर्प्राप्त संस्करणों के बीच अंतर की तुलना करने के लिए कमांड चलाता हूं । यदि मैं पुनर्प्राप्ति फ़ाइल से परिवर्तन से खुश हूं, तो मैं फ़ाइलों को :x
कमांड से सहेज कर बाहर निकलता हूं । यदि नहीं, तो मैं छोड़ने के साथ पुनर्प्राप्त परिवर्तनों को छोड़ देता हूं :q!
। यदि पुनर्प्राप्ति फ़ाइल किसी सहेजी गई फ़ाइल से संबद्ध नहीं है, उदाहरण के लिए .swp
, मैं आमतौर पर :w filename
फ़ाइल नाम के साथ पुनर्प्राप्त बफर को फ़ाइल में सहेजने के लिए उपयोग करता हूं ।
डिफॉगर हेल्पर
मैंने डिफॉगर कमांड को अपने साथ जोड़ा .vimrc
ताकि यह हमेशा उपलब्ध रहे।
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
शैल लिपि
मैं वर्तमान स्क्रिप्ट ट्री में प्रत्येक स्वैप-फ़ाइल को खोजने के लिए अपने शेल में निम्नलिखित स्क्रिप्ट चलाता हूं। प्रत्येक स्वैप-फ़ाइल का उपयोग "रिकवरी मोड" में विम को खोलने के लिए किया जाता है और विम के बंद होने के बाद इसे हटा दिया जाता है।
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
rm -i
विकल्प की पुष्टि (की आवश्यकता है y
फ़ाइल को नष्ट करने के लिए)। यदि आप अधिक आश्वस्त हैं और प्रक्रिया को गति देना चाहते हैं, तो इसे छोड़ा जा सकता है।
:e #
चाल आदर्श नहीं है, लेकिन फिर भी नीचे दिए गए मौजूदा उत्तर की तुलना में अधिक उपयोगी है। :-)