2009-02-21 58 views
69

我關閉了vim中的一個標籤,並立即意識到我需要重新打開它的東西。有沒有辦法在Vim 7.2中取消關閉標籤?Vim中的撤消關閉標籤

+0

這能轉移到vi.stackexchange.com? – Sukima 2015-07-16 21:01:55

+0

嗨,[這個vimscript和windowlayout插件](https://www.reddit。com/r/vim/comments/3ke941/undo_close_tab/cux8gh2)可以完成這項工作:它重新打開剛剛關閉的選項卡,並返回您的窗口布局。 – 2015-09-11 08:34:43

回答

9

我正在使用MRU (most recently used files) plugin。所以,我可以編輯的最後30個文件,我剛編輯

這裏是MRU插件元數據:

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

使用

要列出從MRU列表,你可以編輯文件使用「:MRU」命令。 「:MRU」命令在臨時Vim窗口中顯示MRU文件列表。如果 MRU窗口已打開,則顯示窗口 中顯示的MRU列表將被刷新。

6

簡單的答案是否定的,沒有什麼內置。

但一個可行的解決方案是使用一個插件,如優秀BufExplorer。因爲它默認爲第一上市的最近使用的緩衝區,重新打開關閉的選項卡將如按\bet

+0

正如聖盧西亞提到的那樣,你需要先用''來讓它工作。 – 2014-10-24 21:23:05

114

您的文件可能是在一個緩衝區仍處於打開狀態一樣簡單:

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

要重新打開緩衝區18,用於例如:

:tabnew +18buf 
+0

對我不起作用 – Chris 2009-02-23 11:54:46

+5

它適合我。我在發佈之前試過了。 – greyfade 2009-02-23 19:32:44

1

使用插件本建議:BufExplorer Github Mirror

在他的回答一會又要按<Leader>be<Down>t。添加一個快捷方式:

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

這樣簡單地<leader>t就可以完成這項工作。

23
:tabnew# 

重新打開最近關閉的文件在新標籤頁


編輯:請使用greyfade的答案。我不喜歡我的答案,但我保留在這裏作爲參考和有用的評論信息。

1

如果有一個BufferClose事件,這將是容易... but it seems that it is not possible since it is not possible for window creation

但是在標籤的情況下,我們可以通過保持標籤計數並計算TabLeaveTabEnter之間的差異來檢測標籤是否關閉。

用法:<leader>tr重新打開一個新的選項卡上的上次關閉的標籤(假設的標籤只有一個緩衝區):

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>