撤消Vim中的关闭选项卡


Answers:


11

我正在使用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列表。


5
您能总结一下基本用法吗?
Ciro Santilli郝海东冠状病六四事件法轮功

我不明白这个答案...这似乎是建议使用插件?
马丁·图尔诺伊

@Carpetsmoker是的,它是:mru.vim。
trusktr'5

如果您刚刚在选项卡中打开了10个文件,切换到其中一个文件,然后将其关闭,则此方法不是那么有用,因为MRU会按照打开顺序显示最后打开的10个文件,当然您也可以打开更多文件,迷路,需要自己比较
资格

140

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

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

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

:tabnew +18buf

5
:tabnew N没有为我工作。我要做的是:tabnew,然后:bNN是缓冲区编号
2012年

@alfonso:命令是:tabnew +NbufN的缓冲区号。它必须以+开头,并带有单词“ buf”。
greyfade 2012年

5
@greyfade含义的示例:tabnew +18buf
Eric Hu

3
你甚至可以做:vsp + [bufferNumber] buf帮助我在vim中重新打开了封闭的分割
3emad 2012年

4
这行不通的原因是,它+是行引用,而不是缓冲区引用,#不能+用于在:tabe #5新选项卡中打开缓冲区5。
Sukima 2015年

31
:tabnew#

在新标签页中重新打开最近关闭的文件


编辑:请使用greyfade的答案。我不喜欢我的答案,但我将其保留在此处以供参考和有用的评论信息。


奇怪的是,它似乎首先开始工作,现在正在打开无关的缓冲区。

#是当前窗口中最后编辑的文件。关闭标签不会将该文件注册为替代文件(#)。您必须按缓冲区号(:ls)查找它
-Sukima

如果您是面向分裂的,那么它的工作效果将不尽人意。
Al.G.

错误提示:“ E194:没有备用文件名来代替'#'”
Scott Yang


1

使用插件Ben建议:BufExplorer Github Mirror

要回答他,就必须按<Leader>be<Down>t。添加一些快捷方式:

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

这样就<leader>t可以完成工作。


1

如果有 BufferClose事件,这很容易...但是似乎不可能,因为不可能创建窗口

但在选项卡的情况下,我们可以发现,如果一个标签被保持标签计数和计数之间的区别关闭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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.