在以下所有缓冲区关闭后退出vim:bd

时间:2015-07-24 21:06:30

标签: vim

我希望remap :q:bd因为我真的不希望缓冲区在长时间运行的vim会话中保持不变(它可以容纳.swp文件与同一文件的另一个vim会话冲突。)

唯一的问题是:bd如果它是剩下的最后一个缓冲区,则不会退出vim。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

fun! s:quitiflast()
    bdelete
    let bufcnt = len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
    if bufcnt < 2
        echo 'shutting everything down'
        quit
    endif
endfun

command! Bd :call s:quitiflast()

cmap q Bd