我在vim中关闭了一个选项卡,但马上意识到我需要再次打开它来查找某些内容。在Vim 7.2中有没有撤消关闭选项卡的方法?
你的文件可能仍然在缓冲区中打开:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
例如,要重新打开缓冲区18:
:tabnew +18buf
:tabnew N
对我来说不起作用。我的做法是先使用 :tabnew
命令,然后再输入 :bN
,其中的 N 是缓冲区编号。 - alf:tabnew +Nbuf
,其中 N 是缓冲区号。它必须以 + 开头,并以单词 "buf" 结尾。 - greyfadetabnew +18buf
- Eric Hu+
是行引用而不是缓冲区引用,需要使用#
而不是+
,例如使用:tabe #5
来在新标签页中打开缓冲区5。 - Sukima:b 18
(18是来自于 :ls
的数字) - itsnikolay:tabnew#
在新标签页中重新打开最近关闭的文件
编辑:请使用greyfade的答案。我不喜欢我的答案,但我将保留它作为参考和有用的评论信息。
#
是当前窗口中最后编辑的文件。关闭一个标签页不会将该文件注册为备选项(#
)。您必须通过缓冲区编号(:ls
)查找它。 - Sukima我正在使用一个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 列表进行刷新。
简单的答案是不行,没有内置的功能。
但一个可行的解决方案是使用像BufExplorer这样的插件。由于它默认按最近使用的缓冲区列表排序,重新打开一个关闭的标签页只需按下\bet
即可。
<leader>be<Down>t
才能使其起作用。 - Ciro Santilli OurBigBook.com使用插件Ben建议的:BufExplorer Github Mirror
在他的答案中,你需要按下<Leader>be<Down>t
。添加一个快捷键:
map <silent><leader>t <leader>be<Down>t
<leader>t
即可完成工作。<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>