vim:撤销最后关闭的buffer

Vim、Emacs配置和使用
回复
头像
rykka
帖子: 59
注册时间: 2011-06-24 9:14

vim:撤销最后关闭的buffer

#1

帖子 rykka » 2011-12-01 2:59

工作方式类似于浏览器的撤销最后关闭标签页
<ctrl-w>z:撤销最后关闭的buffer

代码: 全选

"reopen last closed buffers "{{{
"exclude the buffer closed with :bw :qall :)
aug BufList
    au! 
    au vimenter * let g:bufList=[]   
    au bufwinleave * call AddBufList()
aug END
nmap <silent> <c-w>z :call OpenBufList()<cr>
nmap <silent> <c-w><c-z> <c-w>z
function! AddBufList()
    let b=expand('<abuf>') 
    if b > 0
        let g:bufList=add(g:bufList,b)
    endif
endfunction 
function! OpenBufList()
    if exists("g:bufList") && len(g:bufList) !=0
        exec "sb ".remove(g:bufList,-1)
    endif
endfunction "}}}
可以撤销

代码: 全选

:q :hid :close :only :bun :bd
所关闭的buffer('hidden'选项似乎没影响)

不会撤销

代码: 全选

 :bw :qall 
所关闭的buffer
:em04
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: vim:撤销最后关闭的buffer

#2

帖子 fanhe » 2011-12-02 9:55

没这需求
关错了了 c-o
头像
rykka
帖子: 59
注册时间: 2011-06-24 9:14

Re: vim:撤销最后关闭的buffer

#3

帖子 rykka » 2011-12-02 15:08

ctrl-o有时候要按好多下才行,而且不一定会打开刚才关闭的buffer。

我把它改成插件放在https://github.com/Rykka/lastbuf.vim
回复