बफर लिस्ट को रिन्यू करना


29

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

जवाबों:


21

नहीं (बफ़र्स को हटाए बिना नहीं)।

एक बार बफ़र खोलने के बाद विम मैन्युअल रूप से बफर नंबर असाइनमेंट या री-ऑर्डर करने का समर्थन नहीं करता है। यह दर्शन है कि प्रत्येक बफ़र को एक पहचानकर्ता मिलता है जो उस बफ़र के जीवनकाल के लिए निर्धारित होता है (मदद के लिए :ls, यह नोट करता है कि "प्रत्येक बफ़र में एक अद्वितीय संख्या है। वह संख्या नहीं बदलेगी ...")।

आप तर्क सूची का उपयोग कर सकते हैं, हालांकि। सभी ओपन बफ़र्स को तर्क सूची में डालें, सभी बकाया बफ़र्स को हटा दें, फिर तर्क सूची में सब कुछ खोलें। निम्नलिखित आदेश यह पूरा करेंगे:

  • :argdel * (मौजूदा तर्क सूची हटाएं)
  • :bufdo argadd % (प्रत्येक बफ़र के लिए, सूची में बफ़र का पथ जोड़ें)
  • :1,1000bd (1 से 1000 बफ़र्स हटाएं; शायद ऐसा करने का एक बेहतर तरीका है)
  • :argdo e (प्रत्येक तर्क के लिए, उस तर्क को संपादित करें)

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


1
आपका उत्तर कहता है कि नहीं, लेकिन ऐसा लगता है कि यह महान काम करता है!
अरहरिस a

(मेरा मतलब "नहीं" इस अर्थ में है कि आप इसे फिर से खोलने के बिना नहीं कर सकते हैं)। हालांकि यह वास्तव में आप के लिए 1 से फिर से करता है? मैंने सोचा था कि जब मैंने पहली बार यह कोशिश की थी, लेकिन अब मैं इसे मेरे लिए नहीं देख रहा हूँ ?

हाँ, यह मेरे लिए नया है।
अरहरिस a

हां, मैं सिर्फ गूंगा हूं, मुझे अपनी गलती मिली।

"प्रत्येक बफ़र को एक पहचानकर्ता मिलता है जो उस बफ़र के जीवनकाल के लिए निर्धारित होता है" वास्तव में सत्र!

14

"बफर नंबर पागल हो जाते हैं" मुझे इसके बारे में बताओ! दिन के अंत तक मैं 100 से अधिक शौकीनों के लिए आसान हूं। लेकिन सौभाग्य से, जैसा कि आप इस एनीमेशन में देख सकते हैं, आपके पास tabबफर नामों के लिए पूरा हो चुका है ।

हिट: b se <Tab>

इसलिए, भले ही आप बफ़र्स को वापस नहीं कर सकते, फिर भी आप आसानी से इधर-उधर कूद सकते हैं।

मुझे नहीं पता कि यह एनीमेशन से स्पष्ट है लेकिन, "टैब पूरा" कमांड लाइन टैब पूरा होने के विपरीत है। यह "अस्पष्टता टैब प्रतिकृति" को हल करने जैसा है। मतलब कि कमांड लाइन में मुझे sctabतब टाइप करना होता था, setabलेकिन यहाँ vim एक 'se' सर्च करता है और इसे पहले (और केवल) मैच से बदल देता है। अगर मैंने टाइप testtabकिया होता तो यह 'generate_test_data.py' tabसे मेल खाता होता और फिर से 'स्क्रिप्ट / सेटअप_test_data.sh' से मेल खाता होता और फिर tabसे वापस चारों ओर साइकिल चला जाता, आदि।

बिंदु यह है कि आप केवल :b <minimum amount of unambiguous characters>tabउस दस्तावेज़ पर कूदने की आदत डाल सकते हैं जिसे आप चाहते हैं। मुझे लगता है कि यह याद रखने से बेहतर है कि "मेरे बफ़र्स 1: फू 2: बार 3: आदि" हैं, जो कि मैं एक नौसिखिया होने पर कैसे करता था।


7

आप विम-एयरलाइन का उपयोग कर सकते हैं। इस प्लगइन में एक व्यवहार है जो शायद आपको समस्या को ठीक करता है:

एयरलाइन। Txt में लाइन 470-479 देखें

यह बफर नंबरों को नहीं बदलेगा, लेकिन आप टैबलाइन में पंक्ति संख्या से बायें से दाएं बफर का चयन कर सकते हैं। यह एयरलाइन के लिए मेरी सेटिंग है .vimrc:

"set airline 
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
let g:airline#extensions#tabline#show_tab_nr = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#tabline#fnametruncate = 16
let g:airline#extensions#tabline#fnamecollapse = 2

let mapleader=","

let g:airline#extensions#tabline#buffer_idx_mode = 1

nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9

मेरी टैब लाइन: मेरी टैब लाइन


गजब का! मुझे यह पसंद है :)
ब्लॅस्को

सवाल का जवाब नहीं लेकिन यह पागल बफर नंबरों के साथ समस्या को हल करता है। बस केवल शो buffer_numbers लिए एक सिफारिश: switch_buffers_and_tabs=1औरbuffer_idx_mode=0
Caligari

6

प्रलेखन के अनुसार, बफर नंबर कभी नहीं बदलते हैं

    Each buffer has a unique number.  That number will not change,
    so you can always go to a specific buffer with ":buffer N" or
    "N CTRL-^", where N is the buffer number.

एक ही तरीका है कि मैं बफ़र्स को फिर से शुरू करने के बारे में सोच सकता हूं।


0

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

यहाँ छवि विवरण दर्ज करें

बफ़र नंबरों को बाईं ओर प्रदर्शित किया जाता है यदि आपको उनकी आवश्यकता होती है, लेकिन फ़ज़ी फ़ाइंडर के साथ, आपको उन्हें फिर से उपयोग करने की आवश्यकता नहीं हो सकती है। बस फ़ाइल नाम का हिस्सा याद रखें, और यह आमतौर पर 2-5 कीस्ट्रोक्स है। निजी तौर पर, मैंने इस कमांड को कीस्ट्रोक पर मैप किया है, और बफ़र्स के बीच स्विच करना मेरे लिए लगभग तुरंत है!

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