在vim中是否有办法从某个目录及其子目录中关闭所有文件(缓冲区,让我们不进入)?
将以下内容放入.vimrc或vim插件文件夹中的某个自定义文件中.
function! s:close_buffers(name_regexp) for buffer_number in range(1, bufnr('$')) if !buflisted(buffer_number) continue endif let name = fnamemodify(bufname( buffer_number ), ':p') if name =~ a:name_regexp exec 'bdelete '.buffer_number endif endfor endfunction command! -nargs=1 CloseBuffers call s:close_buffers()
使用命令
:CloseBuffers include :CloseBuffers in.*e
关闭名称匹配传递regexp的缓冲区.
这意味着要关闭您可以使用的特定文件夹中的所有文件
:CloseBuffers workspace/cpp :CloseBuffers /home/my/project
要关闭当前目录和所有子目录中的所有文件
:exec "CloseBuffers ".getcwd()