विम - एक खिड़की में खुले बफ़र्स की गतिशील सूची


22

मैंने विम में खुले बफ़र्स की सूची बनाए रखने के लिए कुछ तरीकों की जांच की है, और उनमें से कुछ बहुत अच्छे हैं, लेकिन उनमें से कोई भी उस तरह का व्यवहार नहीं करता जैसा मैं चाहता हूं। यह बहुत संभव है कि जैसा मैं चाहता हूं वैसा कुछ भी मौजूद नहीं है, और यह पूछने के लिए चोट नहीं पहुंचा सकता है।

मैं GVim में NERDTree का उपयोग कर रहा हूं, और मुझे जानकारी को पतला बाएं हाथ की खिड़की में रखने का विचार पसंद है। मैंने एक आसान आरेख को एक साथ रखा है कि मैं अपने परिवेश को कैसे देखना चाहूंगा:

|--------|---------------------------------------|
|        |                                       | 
|        |                                       | 
|NERDTree|           Windows                     | 
|        |                                       | 
|        |                                       | 
|        |                                       | 
|--------|                                       |
|        |                                       | 
|        |                                       | 
|  List  |                                       | 
|   of   |                                       | 
|  Open  |                                       | 
| Buffers|                                       | 
|        |                                       | 
|        |                                       | 
|--------|---------------------------------------|

तो मेरा प्रश्न यह है: क्या वर्तमान में खुले बफ़र्स की सूची बनाए रखने के लिए एक विम-देशी या प्लगइन-सक्षम तरीका है और उस सूची से NERDTree के समान एक विंडो के अंदर / संपादित / बंद करें?

मैं समझता हूं कि यह दृष्टिकोण चीजों को करने के विम तरीके के साथ असंगत हो सकता है , और यदि आपको लगता है कि मुझे कुछ याद आ रहा है कि विम सत्र में कई फाइलों को कैसे प्रबंधित किया जाए, तो कृपया सुझावों के साथ एक टिप्पणी छोड़ दें!


मैं भी नीचे (या ऊपर) nerdtree फलक की एक बफर सूची देख रहा हूँ। मैं इस पोस्ट को अपडेट करने के लिए याद रखने की कोशिश करूंगा अगर मुझे एक अच्छा समाधान मिल जाए (लेकिन वैसे भी पूछने के लिए धन्यवाद)
एरिक ड्रेचेल

जवाबों:


7

क्या आपने vim.org का प्लगइन रिपॉजिटरी खोजा है? हैं प्लगइन्स स्विचिंग बफर के दर्जनों आप की तरह से चुनने के लिए BufferGator या SelectBuf । वैकल्पिक रूप से, उनमें से अधिकांश को विम विकी पर एक अच्छी सूची में संकलित किया गया है


जैसा कि आपने अपने प्रश्न के अंतिम भाग में कहा था कि इस तरह की प्रणाली हर किसी के स्वाद के लिए नहीं है।

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

मैं बफ़र्स के बीच क्विकली स्विचिंग के लिए एक ही प्लगइन का उपयोग करता हूं और वर्तमान में जो फ़ाइल मैं एडिट कर रहा हूं, उसके आसपास फाइलसिस्टम को क्विकली खोज रहा हूं। साथ आमंत्रण ,f(फ़ाइलें) या ,b(बफर), खिड़की जब मेरा कार्य पूर्ण हो गायब हो जाता है। उत्तम। कर रहे हैं अन्य समान प्लगइन्स , उन सब को यदि आप उस विचार की तरह का प्रयास करें।

संपादित करें

मुझे लगता है कि कार्रवाई में CtrlP की एक एनिमेटेड GIF को जोड़ने के लिए मजबूर किया गया है, बफ़र्स स्विच करना:

Ctrl के साथ बफ़र्स स्विच करना

ENDEDIT

देशी :sb <Tab>भी बहुत साफ है लेकिन कम सेक्सी है। यह फजी मिलान का समर्थन नहीं करता है, लेकिन इसके कुछ बड़े फायदे हैं: इसमें बनाया गया है और यह काम करता है :e <Tab>, :vs <Tab>और इसी तरह।


आपके सुझाव के लिए धन्यवाद। ऐसा लगता है कि BufferGator और SelectBuf दोनों कम से कम कार्यक्षमता के करीब हैं, मैं बाद में हूं, हालांकि चीजों को प्राप्त करने के लिए उन्हें कुछ ट्विकिंग की आवश्यकता हो सकती है। मैं निश्चित रूप से अंतरिक्ष को बर्बाद करने के बारे में चिंता की सराहना करता हूं, लेकिन मेरे वर्तमान उपयोग के मामले में मेरे पास एक बार में एक जीवीएम इंस्टेंस है जो एक बार में कई फाइलों के साथ खुला रहता है, जरूरत पड़ने पर उनके बीच में। इन परिस्थितियों के लिए, एक निरंतर बफर सूची अत्यंत सहायक है। हालाँकि, मैं बफर प्रबंधन के लिए अधिक विशिष्ट विम दृष्टिकोण के बारे में जानने के लिए कुछ समय लूंगा।
asfallows

मुझे लगता है कि आप एक बड़े मॉनिटर पर काम करते हैं। जो भी सिस्टम आप चुनते हैं, आपको अभी भी 1. बफर को स्विच करना होगा। 2. बफर का चयन करें, 3. इस पर कूदने के लिए एक कुंजी दबाएं कि क्या बफर सूची पहले से ही दिखाई दे रही है या नहीं। एक "ऑन-डिमांड" बफर स्विचर का उपयोग करना इस प्रकार एक बफरलिस्ट को खुला रखने के रूप में प्रभावी है और यह अंतरिक्ष बचाता है।
रोमेनैल

मैं निश्चित रूप से उस तर्क की सराहना करता हूं, यही कारण है कि मैं इस संभावना के बारे में बहुत आशंकित नहीं हूं कि जो सटीक कॉन्फ़िगरेशन मैं यहां बता रहा हूं वह संभव नहीं हो सकता है। केवल एक निरंतर बफर सूची का मुख्य लाभ यह है कि यह जाँचने के लिए 0 कीस्ट्रोक्स लेता है कि कौन सा बफ़र खुला है, जानकारी का एक टुकड़ा मुझे मूल्यवान लगता है और अल्पकालिक स्मृति में रखने पर खुद को बहुत बुरा लगता है। (और हाँ, मैं काम एक काफी बड़ा मॉनीटर पर करते हैं।)
asfallows

@romainl, ctrlp वाले ,bबफ़र्स को खोजने के लिए आपने किस vimrc कमांड का उपयोग किया ?
बर्फबारी

1
@ अनजाने, FWIW मैं कुछ समय पहले Ctrl या किसी अन्य समान प्लगइन्स का उपयोग बंद कर दिया है। वैसे भी, मेरी आज्ञा थी nnoremap ,b :CtrlPBuffer<CR>
रोमेनैल

5

मैं MiniBufExplorer की अत्यधिक अनुशंसा कर सकता हूंMinibufexplorer का एक विकल्प भी देखें ?

स्क्रीनशॉट


उत्तर के लिए धन्यवाद - मुझे मिनीब्यूएक्सप्लॉयर मिल गया, और ऐसा लग रहा है कि यह बहुत अच्छा है जो यह करता है, लेकिन यह उन शर्तों को पूरा नहीं करता है जो मैंने वर्णित किया है कि मैं बफ़र्स का प्रबंधन कैसे करना चाहता हूं। अगर यह पता चलता है कि मैं जो करने की कोशिश कर रहा हूं उसका कोई अच्छा तरीका नहीं है, या मैं यह तय करता हूं कि यह करने का सही तरीका नहीं है, तो अगले प्रयास करने के लिए मेरी सूची में MBE बहुत अधिक है।
asfallows

1
एकमात्र शर्त जो पूरी नहीं हुई है वह यह है कि सूची बाईं ओर है। मैं सहमत हूं, MiniBufExplorerशीर्ष पर है (जहां यह बाईं ओर जितना स्थान बर्बाद नहीं करता है)। या हो सकता है कि मैंने आपकी आवश्यकताओं को गलत समझा।
मार्को

मेरे वर्तमान सेटअप के साथ, बायीं ओर बफ़र्स की सूची को दर्शाया गया है, वास्तव में अंतरिक्ष उपयोग का सुधार है, क्योंकि NERDTree हर समय खुला रहता है, लेकिन हमेशा हमें पूर्ण ऊर्ध्वाधर नहीं करता है। एक बफर सूची के साथ उस स्थान को साझा करना अच्छा होगा। यह ध्यान देने योग्य है कि यह है कि मैं GVim का उपयोग कैसे करता हूं, और यदि मैं कंसोल में Vim का उपयोग कर रहा हूं तो मैं लगातार बाएं कॉलम नहीं चाहूंगा। विम का मेरा अधिकांश कंसोल "ओपन फाइल, क्विक एडिट, क्लोज़ विम" ​​है
12'39

1

वहाँ एक तरीका है कि winmanager प्लगइन का उपयोग कर रहा है । इस स्क्रीनशॉट में मैं दोनों NERDTree और MiniBufExpl (github: techlivezheng / vim-plugin-minibufexpl, latest प्रतिबद्ध atm 349a9fbb) प्लग को एक ही ऊर्ध्वाधर विभाजन पर जोड़ देता हूं और F4 के साथ टॉगल करता हूं। सिद्धांत रूप में यह समाधान किसी अन्य प्लगइन्स संयोजन के लिए काम करना चाहिए।

मेरे .vimrc का उदाहरण

"{{{MiniBufExpl विन्यास
Let g: miniBufExplVSplit = 20 "वर्टिकल में खोलें
Let g: miniBufExplSplitToEdge = 0 "पिछली विंडो के सापेक्ष खुला (NERDTree)
"}}} MiniBufExpl config

"{{{वाइनमैन कॉन्फ़िगरेशन
"प्लगइन्स रजिस्टर करें
Let g: NERDTree_title = 'NERD ट्री'
Let g: MiniBufExpl_title = 'MiniBufExpl'

"लेआउट सेट करें
चलो जी: winManagerWindowLayout = 'NERDTree | MiniBufExpl'

"NERDTree के लिए हैंडलर
समारोह! NERDTree_Start ()
    'NERDTree' पर अमल करें
endfunction

"MiniBufExpl के लिए हैंडलर
समारोह! MiniBufExpl_Start ()
    'MBEOpen' निष्पादित करें
endfunction

"F4 को विभाजन टॉगल करने के लिए मैपिंग
nmap <F4>: WMToggle
"}}} winmanager config

समस्या का:

  • NERDTree उस बफ़र का उपयोग नहीं करता है जो वाइनमैन बनाता है, लेकिन अपने आप खुल जाता है ...
  • ... इसलिए winmanager बफर अप्रयुक्त रहता है
  • बफ़र्स के बीच कूदते समय MiniBufExpl खुद को ठीक से अपडेट नहीं करता है

मैंने जो व्यवहार किया है, वह बिल्कुल सही है लेकिन यह एक अच्छी शुरुआत है।

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