2009-02-21 9 views
69

में टैब बंद करें पूर्ववत करें मैं विम में एक टैब बंद करता हूं और तुरंत महसूस करता हूं कि मुझे इसे फिर से खोलने की आवश्यकता है। क्या वीम 7.2 में बंद टैब को पूर्ववत करने का कोई तरीका है?विम

+0

इस vi.stackexchange.com के लिए ले जाया जा सकता है: <leader>tr नए टैब पर पिछले बंद टैब पुन: खोलता है (टैब मान केवल एक ही बफर था)? – Sukima

+0

हाय, [विस्क्रिप्ट और विंडो प्लेआउट प्लगइन का यह बिट] (https: //www.reddit।com/r/vim/टिप्पणियां/3ke941/undo_close_tab/cux8gh2) नौकरी करता है: यह आपके द्वारा अभी बंद किए गए टैब को फिर से खोलता है और आपके पास विंडो लेआउट वापस लाता है। –

उत्तर

9

मैं MRU (most recently used files) plugin का उपयोग कर रहा हूं।

File: mru.vim 
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) 
Version: 3.2 Last Modified: 
September 22, 2008 

प्रयोग

सूची और MRU सूची, आप कर सकते हैं से फ़ाइलों को संपादित करने के लिए: तो मैं पिछले 30 फ़ाइलें मैं सिर्फ

संपादित किया है यहाँ MRU प्लगइन मेटाडाटा हैं संपादित कर सकते हैं "एमआरयू" कमांड का प्रयोग करें। "एमआरयू" कमांड एक अस्थायी विम विंडो में एमआरयू फ़ाइल सूची प्रदर्शित करता है। यदि एमआरयू विंडो पहले ही खोला गया है, तो विंडो में प्रदर्शित एमआरयू सूची ताज़ा है।

+5

क्या आप मूल उपयोग को सारांशित कर सकते हैं? –

+0

मुझे यह जवाब नहीं समझा है ... ऐसा लगता है कि यह प्लगइन के उपयोग की सिफारिश कर रहा है? – Carpetsmoker

+0

@ कार्पेट्समोकर हाँ, यह है: mru.vim। – trusktr

6

सरल उत्तर नहीं है, इसमें कुछ भी अंतर्निहित नहीं है।

लेकिन एक व्यावहारिक समाधान उत्कृष्ट BufExplorer जैसे प्लग-इन का उपयोग करना होगा। के बाद से यह पहली बार हाल ही में उपयोग बफ़र्स लिस्टिंग एक बंद टैब फिर से खोलने \bet

+0

जैसा कि लूसिया ने उल्लेख किया है, आपको इसे काम करने के लिए पहले t' के साथ नीचे जाना होगा। –

114

दबाने आपकी फ़ाइल शायद अभी भी एक बफर में खुला है के रूप में सरल हो सकता है, के लिए चूक:,

:ls " get the buffer number 
:tabnew +Nbuf " where N is the buffer number 

बफर 18 फिर से खोलने के लिए उदाहरण:

:tabnew +18buf 
+0

मेरे लिए काम नहीं करता – Chris

+5

यह मेरे लिए करता है। मैंने पोस्ट करने से पहले इसे आजमाया। – greyfade

+5

': tabnew N' मेरे लिए काम नहीं किया। मैं जो करता हूं वह है: टैबन्यू 'और फिर ': बीएन' जहां एन बफर संख्या – alf

1

उपयोग प्लग में बेन सुझाव: BufExplorer Github Mirror

उसके जवाब में एक <Leader>be<Down>t प्रेस करने के लिए होगा। थोड़ा शॉर्टकट जोड़ना:

map <silent><leader>t <leader>be<Down>t 

ताकि बस <leader>t काम करना होगा।

23
:tabnew# 

नया टैब


संपादित में हाल ही में बंद फ़ाइल को पुनः खोलता है: greyfade के जवाब का उपयोग करें। मुझे मेरा जवाब पसंद नहीं है, लेकिन मैं इसे संदर्भ और उपयोगी टिप्पणी जानकारी के लिए यहां रख रहा हूं।

+0

मेरे लिए काम नहीं किया - विम 7.4 –

+0

अजीब, ऐसा लगता है कि यह पहले काम करता है अब यह असंबंधित बफर खोल रहा है। –

+0

'#' वर्तमान विंडो में अंतिम संपादित फ़ाइल है। एक टैब बंद करना फ़ाइल को वैकल्पिक ('#') के रूप में पंजीकृत नहीं करता है। आपको इसे बफर नंबर (': ls') – Sukima

1

यदि BufferClose ईवेंट था तो यह आसान होगा ... but it seems that it is not possible since it is not possible for window creation

लेकिन टैब के मामले में हम यह पता लगा सकते हैं कि एक टैब गिनती रखते हुए एक टैब बंद किया गया था और TabLeave और TabEnter के बीच अंतर की गणना कर रहा था।

उपयोग:

let g:reopenbuf = expand('%:p') 
function! ReopenLastTabLeave() 
    let g:lastbuf = expand('%:p') 
    let g:lasttabcount = tabpagenr('$') 
endfunction 
function! ReopenLastTabEnter() 
    if tabpagenr('$') < g:lasttabcount 
    let g:reopenbuf = g:lastbuf 
    endif 
endfunction 
function! ReopenLastTab() 
    tabnew 
    execute 'buffer' . g:reopenbuf 
endfunction 
augroup ReopenLastTab 
    autocmd! 
    autocmd TabLeave * call ReopenLastTabLeave() 
    autocmd TabEnter * call ReopenLastTabEnter() 
augroup END 
" Tab Restore 
nnoremap <leader>tr :call ReopenLastTab()<CR>