2013-08-29 6 views
10

मुझे इस तरह सवाल उठाने दें। मैं vim में एक नई फ़ाइल, (संस्करण 1)विम में आखिरी बार लिखने के लिए पूर्ववत कैसे करें?

#include<stdio.h> 
main() 
{ 
...blah 
} 

और फिर <Esc>:w<Enter> का उपयोग फ़ाइल लिखने में खोलें। तब किए गए परिवर्तनों (संस्करण 2)

#include<stdio.h> 
main() 
{ 
...blah 
... edit1 
... edit2 //and large number of changes here and there in code 
} 

तो मैं <Esc>:w<Enter> का उपयोग कर परिवर्तन सहेजें।

वहाँ संस्करण 1 सीधे करने के लिए परिवर्तनों को पूर्ववत करने का कोई तरीका है (चूंकि यह था एक अंतिम बचाने के लिए) यानी, लगातार undo के लिए u दबाने ing

बिना
+3

अपना समय बर्बाद करने और गंडो प्लगइन –

+2

[गुंडो] (http://sjl.bitbucket.org/gundo.vim/) प्राप्त करें या संस्करण नियंत्रण सॉफ्टवेयर – FDinoff

+0

@FDinoff वास्तव में, मैं svn का उपयोग करता हूं। लेकिन मुद्दा यह है कि, मैं सर्वर से अद्यतन खींचता हूं और बहुत से स्थानीय संपादन करता हूं (बिना प्रतिबद्ध किए, प्रतिबद्धता साथी उपयोगकर्ताओं को प्रभावित करता है) और अंततः एक लंबे अंतराल के बाद प्रतिबद्ध होता है! –

उत्तर

14

विम की मदद से:

:earlier {N}f Go to older text state {N} file writes before. 
       When changes were made since the last write 
       ":earlier 1f" will revert the text to the state when 
       it was written. Otherwise it will go to the write 
       before that. 
       When at the state of the first file write, or when 
       the file was not written, ":earlier 1f" will go to 
       before the first change. 

इसलिए, यदि आप को बचाने दूसरे के बाद परिवर्तन नहीं किया है, तो आप क्या कर सकते हैं आप के साथ हैं:

:earlier 1f 

दूसरी ओर, यदि आपने दूसरी सहेजने के बाद सहेजे गए परिवर्तन नहीं किए, फिर:

:earlier 2f 

आपकी समस्या का समाधान करेगा।

:help :earlier, :help :undolist देखें।

+0

यदि आप इसका उपयोग करने की योजना बना रहे हैं तो सुनिश्चित करें कि आप निरंतर पूर्ववत चालू करें। (': एच लगातार-पूर्ववत करें ') – FDinoff

1

आप सभी तरह से वापस जब आप पहली बार फाइल खोली करने के लिए प्राप्त कर सकते हैं बहुत आसानी से। बस u से पहले एक संख्या टाइप करें।

10000u, 10000 बार पूर्ववत करेगा। यदि यह पर्याप्त नहीं है 1000000u :)

यदि आप थोड़ा सा पूर्ववत करना चाहते हैं, तो आप इसे किसी भी वृद्धि में कर सकते हैं, 5u आज़माएं।

यदि आप डिस्क से फ़ाइल को फिर से लोड करना चाहते हैं :e

+0

धन्यवाद। इसके बाद, मैं करता हूं 'e' क्या का उपयोग करके संस्करण 2 पर वापस जाना संभव है? मैं इस बीच कोशिश करूँगा .. –

+1

@ सतीशकृष्णन नहीं, मुझे नहीं लगता कि यह संभव है। हो सकता है कि यदि आप एक फ़ाइल को संपादित करने के लिए एकाधिक बफर का उपयोग शुरू करते हैं, लेकिन यह बहुत भ्रमित हो सकता है और आप हमारे परिवर्तनों को खोने को समाप्त कर सकते हैं। – Paulpro

+1

यह केवल तभी काम करता है जब आप लगातार पूर्ववत नहीं करते हैं। (जो मेरी राय में एक बहुत अच्छी सुविधा है) – FDinoff

संबंधित मुद्दे