वीआईएम (जीवीएम / मैकविम) बिना सहेजे हुए / अनाम बफ़र्स के लिए स्वैप फाइलें कैसे रखता है?


52

वीआईएम (जीवीएम / मैकविम) बिना सहेजे हुए / अनाम बफ़र्स के लिए स्वैप फाइलें कैसे रखता है? (अगर यह ऐसा करता है)।

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

प्रश्न: क्या किसी को पता चलेगा कि ऐसा कोई मौका है कि सहेजे गए कार्य को स्वैप (.swp) फ़ाइल या इस तरह बचाया जा सकता है, जिसे पुनर्प्राप्त किया जा सकता है?

सिस्टम विवरण: विशेष रूप से मैक ओएस एक्स 10.5.8 पर मैकविम का उपयोग करके ऐसा हुआ (लेकिन अन्य संस्करणों के लिए संभव पुनर्प्राप्ति संकेत भी रुचि के हैं)। मैंने अभी तक MacVim को फिर से शुरू नहीं किया है, अगर ऐसा करने से सफाई प्रक्रिया शुरू हो जाएगी।


1
स्पष्टीकरण: बिना सहेजे जाने का मतलब है कि मैं कभी नहीं बचा। कमांड-टी दबाकर फाइल बनाई गई थी (मुझे लगता है कि इसके बराबर: टैब), यानी एक नया टैब में एक नया अनाम बफर खोला गया है। (मैं आमतौर पर करूँगा ': sav somefilename' एक बाद की अवस्था में।
डेवूर

कोई बात नहीं। मेरे उत्तर के अतिरिक्त देखें।
frabjous

जवाबों:


60

शुरू करो और कोशिश करो:

:recover <filename>

यदि फ़ाइल में कभी नाम नहीं था, तो बस:

:recover

यही तुम्हारा सबसे अच्छा दांव है। स्वैप फ़ाइलों और पुनर्प्राप्ति के बारे में अधिक जानकारी के लिए, देखें:

:help usr_11

स्वैप फ़ाइलों के बारे में, आमतौर पर वे उसी निर्देशिका में सहेजे जाते हैं जिस फ़ाइल को संपादित किया जा रहा है, लेकिन a के साथ। शुरुआत में इसे छिपाने के लिए और अंत में .swp को जोड़ा, लेकिन यह संभव है कि उन्हें कहीं और स्थानांतरित करें जैसे:

:set directory=~/vimswap

या इसी के समान।

देख:

:help swap

सभी विवरणों के लिए।

एक विम स्वैप फ़ाइल संपादित बफ़र के समान नहीं है, हालांकि, पुनर्प्राप्ति के लिए क्या किया जा सकता है, इस पर वहां पढ़ना सुनिश्चित करें।


संपादित करें : प्रश्न का उत्तर देने वाली टिप्पणियाँ:

[…] यह आपके वर्तमान कार्य निर्देशिका में लग रहा है, ~ / tmp, / var / tmp और / tmp for swap files। - dsclementsen 5 अक्टूबर को 1:42 बजे

इसके अलावा, vim -r कमांड लाइन आर्ग की जाँच करना सुनिश्चित करें। यह उन सभी स्वैप फ़ाइलों का पता लगाएगा जो वे हैं और जहां वे हैं। इसके अतिरिक्त, इसमें बहुत सी अतिरिक्त जानकारी होगी जैसे कि दिनांक / संशोधित / उपयोगकर्ता नाम / आदि ... - Neg_EV Oct 5 '5' सभी समय के लिए


यह मदद करने वाला नहीं है। बिना सहेजे, मेरा मतलब है कि कभी भी बचाया नहीं गया। मतलब मैंने एक नया बफर खोला: टैब या (कमांड + टी)। तो हम एक बिना सहेजे हुए / अनाम बफर के बारे में बात कर रहे हैं। क्या कोई डिफ़ॉल्ट स्थान है जहां इस तरह के बिना सहेजे गए कार्य संग्रहीत हैं?
डेवूर

3
:recoverफ़ाइल नाम के साथ प्रयास करें। मैंने सिर्फ एक अनाम फ़ाइल को पुनर्प्राप्त करने के लिए परीक्षण किया और यह काम किया। वैसे भी, भले ही वह विशेष कमांड मदद नहीं करता हो, उन फाइलों को पढ़ने में मदद मिल सकती है।
frabjous

1
यह उतना नहीं है जितना मैं बता सकता हूं। मैं सिर्फ एक नई फ़ाइल को संपादित करते समय विम की हत्या करके परीक्षण किया। लेकिन जब मैं recoverबिना किसी तर्क के साथ भागा , तो इसने मुझे कुछ पुराने सत्रों से भी चुनने दिया। वैसे भी, एक अनावश्यक बफर के लिए .swp फ़ाइल शायद / tmp में है, लेकिन यह कहीं और होगा जो आपके पास था पर निर्भर करता है set directory= <something>
frabjous

2
इसके अलावा, vim -r कमांड लाइन आर्ग की जाँच करना सुनिश्चित करें। यह उन सभी स्वैप फ़ाइलों का पता लगाएगा जो वे हैं और जहां वे हैं। इसके अतिरिक्त, इसमें बहुत सी अतिरिक्त जानकारी होगी जैसे कि दिनांक / संशोधित / उपयोगकर्ता नाम / आदि ...
Neg_EV

1
मुझे :recover!अपनी सहेजे गए फ़ाइल को पुनर्प्राप्त करने के लिए कमांड का उपयोग करना पड़ा ।

2

मैं विंडोज 10 पर काम करता हूं और :recoverइसमें स्वैप फाइल नहीं मिली है। vim -r_.swp नाम के अंतिम संपादन सत्र (कभी भी सहेजा नहीं गया) से स्वैप फ़ाइल को सूचीबद्ध किया। के साथ बरामदगी संभव थी :recover _


1

जवाब है: सभी जगह। चाल सही मिल रही है। कुछ आपके / tmp निर्देशिका में हैं, लेकिन उनमें से बहुत से आपके घर निर्देशिका के अंतर्गत कहीं हैं।

ऐसा करने के लिए शायद अधिक कुशल तरीके हैं, लेकिन निम्नलिखित ने मेरे लिए काम किया जब मैंने एक अनाम फ़ाइल (मैकबुक पर) खो दी:

होम निर्देशिका में, बैकअप फ़ाइलों की खोज करें (कुछ सेकंड लगते हैं, और संभवत: इसे और अधिक स्मार्ट बनाया जा सकता है):

find ./ -name ".s*" > findVimBackups.txt

खुली फाइल:

vim findVimBackups.txt

अनाम फ़ाइलों के बैकअप के लिए फ़ाइल नाम नहीं निकालें:

:g!/\/\.s..$/d
:g/svn/d

अब मुझे अनाम बैकअप फ़ाइलों के स्थानों की एक सूची दिखाई दे रही है। उन सभी निर्देशिकाओं में, जब तक मुझे आज तक फ़ाइल नहीं मिली, तब तक मैं निम्नलिखित चलाता हूं:

ls -ltra <directory>

मैं सही डाइरेक्टरी में cd और ओपन vim और टाइप करता हूं: ठीक हो जाता है और सही बैकअप का चयन करता है।


0

ऐसा लगता है कि वे आपकी कार्यशील निर्देशिका में समाप्त हो जाएंगे। :pwdयह वह जगह है जहाँ आपने विम को खोला है या वैकल्पिक रूप से आपने इसे :cdया इसी तरह का उपयोग करके सेट किया होगा ।

अनाम बफ़र्स के लिए स्वैप फाइलें बस वहाँ बिना किसी फ़ाइलनाम के साथ डंप हो जाती हैं, इसलिए आप .swp .swn .snwo इत्यादि के साथ समाप्त हो जाएंगे। मुझे यह तब पता चला जब कुछ ठीक करने की कोशिश नहीं की जा रही थी, लेकिन जब मेरा hg अनदेखा फ़ाइल पर्याप्त नहीं था। विभिन्न प्रत्यय!

मैंने अनुमान लगाया कि परिवर्तनों के साथ बहुत से अनाम बफ़र्स होने का कारण हो सकता है और इन बफ़र्स को हटाने से मिस्ट्री फ़ाइलें गायब हो गईं

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