Vim 除了一个文件类型外,如何在每个文件类型上运行自动命令?
我将vim设置为每当我更改缓冲区和检查时间时保存文件。问题是我使用Netrw并最终保存Netrw缓冲区。我可以对除netrw以外的所有类型的文件运行自动命令吗?您可以在Vim 除了一个文件类型外,如何在每个文件类型上运行自动命令?,vim,autocommand,Vim,Autocommand,我将vim设置为每当我更改缓冲区和检查时间时保存文件。问题是我使用Netrw并最终保存Netrw缓冲区。我可以对除netrw以外的所有类型的文件运行自动命令吗?您可以在autocmd中使用:if来防范netrw文件。e、 g autocmd FileType * if &ft != 'netrw' | echo "do something" | endif 然而,这仍然不是很正确。您已停止保存netrw缓冲区,但还有其他不应保存的缓冲区。我建议检查'buftype'并查找以协议开头的文
autocmd
中使用:if
来防范netrw文件。e、 g
autocmd FileType * if &ft != 'netrw' | echo "do something" | endif
然而,这仍然不是很正确。您已停止保存netrw缓冲区,但还有其他不应保存的缓冲区。我建议检查'buftype'
并查找以协议开头的文件,例如foo://
下面是一个使用这种方法的示例:
" create parent directories
" https://stackoverflow.com/questions/4292733/vim-creating-parent-directories-on-save
function! s:MkNonExDir(file, buf)
if empty(getbufvar(a:buf, '&buftype')) && a:file!~#'\v^\w+\:\/'
let dir=fnamemodify(a:file, ':h')
if !isdirectory(dir)
call mkdir(dir, 'p')
endif
endif
endfunction
augroup BWCCreateDir
autocmd!
autocmd BufWritePre * :call s:MkNonExDir(expand('<afile>'), +expand('<abuf>'))
augroup END
“创建父目录
" https://stackoverflow.com/questions/4292733/vim-creating-parent-directories-on-save
功能!s:MkNonExDir(文件,buf)
如果为空(getbufvar(a:buf,“&buftype”)&&a:file!~#”\v^\w+\:\/'
让dir=fnamemodify(a:file,':h')
如果!isdirectory(dir)
调用mkdir(dir,'p')
恩迪夫
恩迪夫
端功能
augroup BWCCreateDir
自动驾驶!
autocmd BufWritePre*:调用s:MkNonExDir(展开(“”),+展开(“”))
螺旋端
这可能有效