विंडो, स्प्लिट और बफर लेआउट कैसे बचाएं?


56

मेरे पास कई कार्य हैं जो मैं एक रिपॉजिटरी में काम कर रहा हूं। मैं उन पर काम करने के लिए "कार्यक्षेत्र" बनाना चाहूंगा।

एक "कार्यक्षेत्र" या "बफ़र लेआउट" में वे सभी फाइलें होंगी जिन्हें मुझे अपने इच्छित लेआउट में खुले में काम करने की आवश्यकता है (उपयोग करने के लिए ^w+v, ^w+sविंडो को विभाजित करने के लिए)।

फिर, जब मैं किसी अन्य कार्य पर काम करना शुरू करता हूं, तो मैं अपने वर्तमान लेआउट को सहेजना चाहूंगा, दूसरे पर जाऊंगा, लेकिन मैं पिछले लेआउट में वापस आने में सक्षम होना चाहूंगा।

इस लक्ष्य को हासिल करने का सबसे अच्छा तरीका क्या है?

जवाबों:


48

आप विम का उपयोग कर सकते हैं :mksessionऔर प्रत्येक "कार्यक्षेत्र" को एक अलग फाइल में लिख सकते हैं , फिर एक सत्र को फिर से खोल सकते हैं vim -S session_file, हालांकि, यदि आप एक प्लगइन का उपयोग करने के लिए खुले हैं, तो मुझे लगता है कि स्टार्ट-अप प्लगइन वास्तव में मुझे इस तरह के परिदृश्य के लिए आवश्यक है: https : //github.com/mhinz/vim-startify

यह सत्र के प्रबंधन का एक बहुत अच्छा काम करता है, vim और mccvim में, और यह आपको हाल ही में फ़ाइलों की एक सूची देता है जब आप vim खोलते हैं। यह आपके लिए सही कार्य निर्देशिका में स्वतः-परिवर्तन भी करेगा। यह आपको शुरुआती स्क्रीन के साथ-साथ शुरुआती स्क्रीन पर भी पिन करने की सुविधा देता है , जो आपके जैसी चीजों तक आसान पहुंच के लिए अच्छा है.vimrc


23

आप आसानी से सत्रों को प्रबंधित करने के लिए tpope के vim-obsession plugin का उपयोग कर सकते हैं । यह विम के इन-बिल्ट के लिए एक आवरण की तरह है mksession, लेकिन साथ ही अन्य बारीकियों का एक सेट प्रदान करता है।

आप वर्तमान सत्र (या बफर लेआउट) को कमांड देकर बचा सकते हैं :Obsess। यदि आप एक तर्क की आपूर्ति नहीं करते हैं, तो यह Session.vimडिफ़ॉल्ट रूप से बुलाया सत्र फ़ाइल लिखता है ।

एक सत्र को फिर से लोड करने के लिए, या तो उपयोग करें vim -S <session-name>या :source <session-name>यदि आप पहले से ही विम के अंदर हैं।

अच्छी बात यह है कि आपको हर बार सत्र से बाहर निकलने के लिए याद रखने की ज़रूरत नहीं है। यह प्लगइन द्वारा स्वचालित रूप से प्रबंधित किया जाता है।

Vim-obession की एक और बहुत महत्वपूर्ण विशेषता यह है कि यह विकल्पों और मानचित्रों को नहीं बचाता है। mksessionवर्तमान विकल्पों और मानचित्रों को कैप्चर करता है, जिन्हें आप बफर लेआउट को बचाने के लिए नहीं चाहते हैं। जब यह एक प्लगइन अद्यतन किया जाता है, आदि भी हस्तक्षेप करता है।


क्या यह कई सत्र फ़ाइलों का प्रबंधन कर सकता है?
नेब्रिल

1
@Nebril यह कर सकते हैं। जब आप सत्र को बचाते हैं, तो प्रारूप का उपयोग करें :Obsess <session-name>। पुनः लोड करते समय इच्छित विशेष सत्र नाम का उपयोग करें।
थमेरा

मैंने पाया कि जुनून ने ऊर्ध्वाधर विभाजन को याद नहीं किया, जबकि मंदी ने किया। मैं केवल इस बारे में आज रात के साथ खिलवाड़ कर रहा हूं, लेकिन क्या ऐसा कुछ है जो मैंने याद किया है?
baxx

1
@baxx जुनून सभी प्रकार के विभाजन को याद करता है। शायद आपने विम को छोड़ने से पहले विभाजन को बंद कर दिया?
थमेरा

2
@baxx यह पुराना है, लेकिन मैं मामले में एक नोट जोड़ना चाहता था इससे किसी और को मदद मिलती है। ऐसा लगता है कि ऐसा लग रहा है कि जुनून विभाजन को भूल रहा है क्योंकि शायद आप अपने सभी विभाजन को छोड़ रहे हैं। इसका मतलब है कि अंतिम स्थिति आपकी अंतिम विंडो है जब आप विम को बंद करते हैं, तो यही जुनून स्टोर होता है। मुझे टैब के साथ भी यही समस्या थी और उत्तर का उपयोग करना है: सभी खुली हुई खिड़कियों, विभाजन, टैब को छोड़ने के लिए क्यूए। अगर किसी के पास बेहतर विकल्प है तो कृपया हमें बताएं।
TC0072

12

एक साइड नोट के रूप में, मैं यह बताना चाहता हूं कि मैंने अभी तक एक और प्लगइन dhruvasagar / vim-prosession को tpope / vim-obsession के विस्तार के रूप में बनाया है जो इसे एक केंद्रीकृत भंडार में डिफ़ॉल्ट रूप से vim सत्र बनाने और प्रबंधित करने के लिए और भी बढ़ाता है। प्रति निर्देशिका के आधार पर विन्यास प्रति और जब आप निर्देशिका पर किसी तर्क के बिना विम लॉन्च करते हैं तो वे स्वचालित रूप से लोड होते हैं। यह आपको सुविधा के लिए विभिन्न सत्रों के बीच स्विच करने की भी अनुमति देता है।


यह बहुत अच्छा लग रहा है। अगर मैं अपने प्रोजेक्ट्स को पूर्ववत रखने के लिए पूर्ववत और बैकअप फ़ाइलों के समान एक फ़ोल्डर में सत्र फ़ाइलों को प्रबंधित कर सकता हूं, तो स्वैप फ़ाइलों के साथ बंद होने से मेरा मन उड़ सकता है।
ड्रैगन 788

1

आप विम-वर्कस्पेस प्लगइन की कोशिश कर सकते हैं , इसके सत्र प्रबंधन की विशेषताएं स्वचालित हैं, आपकी वर्तमान कार्यशील निर्देशिका के लिए स्कोप की गई हैं, और यह बहुत सरल है (केवल ToggleWorkspaceएक बार चलाने की आवश्यकता है )।

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