在Vim中撤消closures标签

我closures了VIM中的一个标签,并立即意识到我需要重新打开它的东西。 有没有办法在Vim 7.2中撤消closures标签?

我正在使用MRU(最近使用的文件)插件 。 所以我可以编辑我刚刚编辑的最后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列表将被刷新。

您的文件可能仍然在缓冲区中打开:

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

要重新打开缓冲区18,例如:

 :tabnew +18buf 
 :tabnew# 

在新标签中重新打开最近closures的文件


编辑 :请使用greyfade的答案。 我不喜欢我的回答,但我保留在这里作为参考和有用的评论信息。

简单的答案是没有,没有内置的东西。

但是一个可行的解决scheme就是使用像BufExplorer这样的插件 。 由于它默认首先列出最近使用的缓冲区,重新打开一个closures的选项卡就像按下\bet一样简单

使用插件本build议: BufExplorer Github镜像

在他的回答中,必须按<Leader>be<Down>t 。 添加一个快捷方式:

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

所以只要<leader>t就能完成这项工作。

如果有一个BufferClose事件,这将是容易的… 但似乎这是不可能的,因为它是不可能的窗口创build 。

但是在选项卡的情况下,我们可以通过保持选项卡计数并计算TabLeaveTabEnter之间的差异来检测选项卡是否被closures。

用法: <leader>tr在新选项卡上重新打开最后closures的选项卡(假设选项卡只有一个缓冲区):

 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>