मैं नए टैब को डिफ़ॉल्ट कैसे बनाऊं?


10

जब मैं vimकई फ़ाइलों ( vim f1 f2 ...) के साथ खोलता हूं , तो मैं इसे बिना उपयोग किए सीधे टैब में कैसे खोल सकता हूं -p?

मैं खोल व्यवहार को अलग व्यवहार से हटा vimरहा हूं, -बड़े हुए एलियास को हटाना आदि, इसीलिए मैं एलियासेस का उपयोग नहीं करना चाहूंगा, आदि (इसलिए, नहीं -p)।

मुझे पूरा यकीन है कि यह कुछ एसई साइटों (जैसे एसओ ) पर पूछा गया है । हालांकि, मैं यह निर्धारित करने की स्थिति में नहीं हूं कि ऐसा करने का सबसे अच्छा तरीका क्या होगा, इसलिए मैं इस बात पर भी ध्यान दे रहा हूं कि एक सुझाई गई विधि क्यों अच्छी है।

विशेष एसओ पद के लिए लिंक:

  • स्वीकृत उत्तर देता है tabpagemax=9999। इसे व्यक्तिगत पूर्वाग्रह कहें, लेकिन मुझे एक बड़ी संख्या के लिए एक सीमा निर्धारित दिखाई दे रही है और मुझे लगता है कि कुछ गलत है (जिस तरह से मैंने देखा तो मुझे लगता है chmod 777)।

    :au VimEnter * set tabpagemax=9999|sil tab ball|set tabpagemax&vim
    
  • अन्य उत्तर को एक अतिरिक्त खाली टैब खोला जाता है, जबकि अधिक संक्षिप्त होने के कारण।

    :autocmd VimEnter * argdo tabedit
    

मैं एक ऐसे उत्तर की उम्मीद कर रहा हूं, जिसमें एक अतिरिक्त टैब नहीं है और एक बड़े मूल्य की सीमा निर्धारित नहीं करता है (या समझाएं कि यह एक बुरी बात क्यों नहीं है)।



@OrangeTux मैंने गिल्स के उत्तर की भावना में पोस्ट किया। लेकिन नीचे के साथ मुझे आश्चर्य है कि गिल्स मौजूदा पोस्ट से लिंक करने वाले पोस्ट को क्या कहेंगे?
मूरू

@Carpetsmoker मैंने आपकी टिप्पणी अपडेट नहीं देखी। खाली सत्र एक बड़ी समस्या नहीं है जब आपके सत्र :qaआदत के बल पर समाप्त होते हैं । अगर यह एकमात्र फायदा है तो मैं दूसरे के साथ जाऊंगा, क्योंकि यह सरल लगता है।
मूरू

3
@ एमआरयू डब्ल्यूजीजीएस? क्या आपको लगता है कि स्टैक ओवरफ्लो के जवाब संतोषजनक नहीं हैं? यदि हां, तो अपने प्रश्न में स्पष्ट करें। किसी भी मामले में, अपने प्रश्न में SO उत्तरों को संक्षेप में प्रस्तुत करें। यदि यह प्रश्न अपने उत्तर से युक्त होता है, तो पोस्ट न करें।
गिलेस एसओ- बुराई को रोकना '

@ गिल्स अपडेट किया गया। मैंने वास्तविक आदेशों को पोस्ट नहीं किया, क्या आपको लगता है कि मुझे करना चाहिए?
मूरू

जवाबों:


4

कुछ प्रयोग के बाद, मैंने इसे सबसे अच्छा तरीका पाया है; इसे वैसा ही व्यवहार करना चाहिए vim -p:

au VimEnter * if !&diff | tab all | tabfirst | endif

सबसे पहले, एक टैब में tab allतर्क सूची ( :args) में सभी प्रविष्टियों को खोलता है । तर्क सूची उन फ़ाइलों की एक सूची है जिन्हें आपने स्टार्टअप पर विम को दिया था। और यह tabfirstसुनिश्चित करता है कि पहला टैब अंतिम के बजाय केंद्रित है (यह वैकल्पिक है)।

अगर सेट किया जाता है तो हम ऐसा नहीं करते हैं &diff; यदि यह है, तो हम उपयोग कर रहे हैं vimdiffया vim -d, जहां हम 2 विंडो रखना चाहते हैं, और 2 टैब नहीं।

में इस सवाल का जवाब मैं भी तर्क सूची और के बारे में थोड़ा लिखा है tab allजो ब्याज की हो सकती है।


अन्य समाधानों के बारे में कुछ नोट्स:

  • tab ballबफर सूची में हर प्रविष्टि के लिए एक टैब खोलता है , न कि तर्क सूची। "समस्या" यह है कि बफर लिस्ट को विमिनफो फाइल में सेव पर सेव किया जा सकता है, और स्टार्टअप पर रीस्टोर किया जा सकता है (यदि %यह 'viminfo'डिफ़ॉल्ट रूप से सक्षम नहीं है)। इसलिए यदि आप सिर्फ टाइप vimकरते हैं तो यह उन फाइलों को खोल देगा। मैं इसे अवांछित मानता हूं, हालांकि मैं कुछ लोगों को इसे उपयोगी मानने की कल्पना कर सकता हूं; इसलिए जो आप पसंद करते हैं उसका उपयोग करें।

  • set tabpagemax=9999आवश्यक नहीं; डिफ़ॉल्ट है 10, और यह ठीक होना चाहिए। यदि आप अधिक चाहते हैं, तो आप इसे अपने vimrc में बढ़ा सकते हैं, लेकिन 9999यह एक मूर्खतापूर्ण संख्या है। यदि आप उपयोग करते हैं -p, तो आपको tabpagemaxटैब भी मिलते हैं। तो इस बात का सम्मान करना चाहिए। याद रखें कि यह स्टार्टअप पर एक बफर खोलेगा (पढ़ेगा), इसलिए यह धीमा है।

  • autocmd VimEnter * argdo tabeditकहने का वही तरीका है tab all। हालाँकि, प्रारंभिक बफ़र को साफ़ नहीं किया गया है, इसलिए आपको उस अतिरिक्त टैब ( tab allसभी टैब को प्रतिस्थापित करता है) के साथ छोड़ दिया गया है । इसे ठीक करने के लिए, आपको जोश पेट्री के उत्तर में समाधान की आवश्यकता है।


2

मुझे लगता है कि इस तरह से कुछ जोड़ने से .vimrcआपकी समस्याएं हल हो सकती हैं (ध्यान दें, हालांकि, मैं वास्तव में इसका उपयोग नहीं करता हूं और केवल न्यूनतम परीक्षण किया है, यह कुछ मामलों में अजीब काम कर सकता है):

function! OpenArgumentsInTabs()
  ardo tabedit
  if tabpagenr("$") > 1
    tabclose
  endif
endfunction

autocmd VimEnter * call OpenArgumentsInTabs()

जैसा कि आपने उल्लेख किया है, argdo tabeditआपको एक खाली अतिरिक्त टैब छोड़ देगा। तो आप बस उस टैब को अपने आप बंद कर सकते हैं। हालाँकि, आप केवल tabcloseअनियंत्रित आह्वान नहीं कर सकते , या जब आप इसे बिना तर्क या एकल फ़ाइल के लॉन्च करते हैं, तो आपको एक त्रुटि मिलेगी (आप "अंतिम टैब को बंद नहीं कर सकते")। इसके बजाय, यह देखने के लिए जांचें कि क्या टैब की कुल संख्या एक से अधिक है (जो कि लौटने का $कारण बनता tabpagenrहै) और केवल तभी आपको अंतिम टैब को बंद करने की आवश्यकता है।


उस ने कहा, मुझे ऐसा लगता है कि यह इंगित करने के लायक है कि विम के टैब अन्य संपादकों के टैब की तरह नहीं हैं , और आपके वर्कफ़्लो में टैब का उपयोग कैसे करें , इस पर ध्यान देने के लिए कुछ ध्यान में रखना चाहिए (आपको इस बारे में पता लगता है, लेकिन मैं भविष्य के पाठकों के लाभ के लिए बिंदु बनाना चाहते हैं जो शायद वे अपने निर्णय खुद नहीं कर सकते)।

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