在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 。 
 但是在选项卡的情况下,我们可以通过保持选项卡计数并计算TabLeave和TabEnter之间的差异来检测选项卡是否被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>