आपके शीर्षक प्रश्न का उत्तर वही है जो आपने देखा है। उपयोगकर्ता पुस्तिका से:help 21.3
जब आप Vim को कई बार चलाते हैं, तो अंतिम एक एक्सटिंग अपनी जानकारी संग्रहीत करेगा। इससे ऐसी जानकारी हो सकती है जो पहले खो जाने के लिए संग्रहीत विम्स से बाहर निकलती है। प्रत्येक आइटम को केवल एक बार याद किया जा सकता है।
हालाँकि, viminfo फ़ाइल का फ़ाइल नाम (जहां कमांड इतिहास संग्रहीत है, वैश्विक निशान और रजिस्टर सामग्री जैसी अन्य चीजों के बीच, यदि कॉन्फ़िगर किया गया है) परिवर्तनशील है! इसका मतलब यह है कि आप विभिन्न परियोजनाओं या विम के उदाहरणों के लिए अलग-अलग 'इतिहास' स्थापित कर सकते हैं। यह मानते हुए कि आप प्रति प्रोजेक्ट एक से अधिक vim उदाहरण नहीं चलाते हैं, vimrc (या अन्य प्रोजेक्ट सेटिंग्स प्लगइन) के माध्यम से viminfo फ़ाइलनाम का प्रबंधन करना इसे संभालने का एक शानदार तरीका है।
सेटअप वैकल्पिक viminfo फ़ाइलें
प्रोजेक्ट स्तर प्रबंधन के लिए, हम आपके viminfo को एक अलग फ़ाइल में सहेजने के लिए vim को कॉन्फ़िगर करना चाहते हैं। यह छोड़ने से पहले या आपके vimrc द्वारा चल रहे vim के भीतर किया जा सकता है, उदाहरण के लिए, आपके vimrc में ऐसी लाइनें हो सकती हैं जो किसी प्रोजेक्ट से संबंधित किसी विशेष निर्देशिका का पता लगाती हैं।
:set viminfo+=nPath/to/custom/viminfofile
Vimrc का स्वचालित रूप से निर्देशिका के आधार पर सेट करने का एक उदाहरण:
if getcwd() == "/projects/projA"
set viminfo+=n~/.viminfo-projA
endif
उपरोक्त का परिणाम यह है कि परियोजना-विशिष्ट इतिहास को स्टार्टअप पर लोड किया जाएगा और बाहर निकलने पर बचाया जाएगा, अगर विम को / प्रोजेक्ट्स / प्रोजा निर्देशिका में लॉन्च किया गया है।
स्टार्टअप के दौरान एक वैकल्पिक viminfo लोड करें
यह उस मामले के लिए अच्छा है जहां आप अपने इतिहास को किनारे पर रखना चाहते हैं और बाद में इसे लोड कर सकते हैं, बिना इसे परियोजना स्तर पर प्रबंधित किए।
सबसे पहले, इतिहास को बचाने के लिए, आप बाहर निकलने से पहले viminfo विकल्प को ऊपर जोड़ते हैं। फिर इतिहास को लोड करने के लिए, -i विकल्प के साथ विम लॉन्च करें
vim -i Path/to/custom/viminfofile
यदि आप viminfo फ़ाइल को सहेजने के लिए vim से बाहर नहीं निकलना चाहते हैं, तो आप :wv
( :wviminfo
) का उपयोग कर सकते हैं । यह ऊपर दिए गए सेटिंग के अनुसार विम को बाहर निकाले बिना viminfo फ़ाइल को बचाता है। और, आप :wv SomeOtherFile
उस स्थान पर सहेजने के लिए भी कर सकते हैं जो viminfo विकल्प में सेटिंग के समान नहीं है। यह बाहर निकलने पर उपयोग करने के लिए फ़ाइल नाम सेट करने से अधिक सुविधाजनक हो सकता है, लेकिन एक बार बाहर निकलने के बाद डिफ़ॉल्ट फ़ाइल का उपयोग करने से रोकना नहीं है।
उदाहरण के लिए, पहले विम में:
:wv ~/customInfo
और दूसरे टर्मिनल में:
vim -i ~/customInfo
या, यदि कोई दूसरा विम पहले से ही चल रहा है और आप viminfo को लोड करना चाहते हैं:
:rv ~/customInfo
ध्यान दें कि :wv
और :rv
फ़ाइल का नाम नहीं बदलना vim बाहर निकलने पर बचाएगा और न ही स्टार्टअप के दौरान पढ़ी गई फ़ाइल का नाम।
अतिरिक्त जानकारी
विवरण set viminfo+=nSomePath
: हम नामित विकल्प को समायोजित करने के लिए सेट कमांड का उपयोग करते हैं viminfo
। +=
दर्शाता है कि हमने विकल्प नहीं परिवर्तन सब कुछ करने के लिए संलग्न करना चाहते हैं। हम उस n
विकल्प को जोड़ते हैं जो viminfo के लिए फ़ाइल नाम निर्दिष्ट करता है। n
हमारे पास तुरंत बाद SomePath
जो viminfo को बचाने के लिए उपयोग किया जाने वाला फ़ाइल नाम होगा।
के लिए प्रलेखन wv
( :help wv
) इंगित करता है कि यह कमांड पहले viminfo फ़ाइल को पढ़ेगा, फिर पुरानी और नई जानकारी के बीच विलय करेगा। अब तक मुझे इस बारे में कोई जानकारी नहीं है कि इस मामले में विलय कैसे काम करता है, लेकिन मुझे लगता है कि यह अज्ञात फ़ाइलों और रजिस्टरों के लिए निशान रखता है जो वर्तमान सत्र में सेट नहीं हैं।