diff options
| -rw-r--r-- | autoload/utils.vim | 9 | ||||
| -rw-r--r-- | core/autocommands.vim | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/autoload/utils.vim b/autoload/utils.vim index 580c1cd..2fa692e 100644 --- a/autoload/utils.vim +++ b/autoload/utils.vim @@ -207,3 +207,12 @@ function! utils#add_pack(name) abort return l:status endfunction + +" Create the parent dir for current file if it does not exist +function! utils#may_create_dir(path) abort + let l:parent_dir = fnamemodify(a:path, ':p:h') + + if !isdirectory(l:parent_dir) + call mkdir(l:parent_dir, "p") + endif +endfunction diff --git a/core/autocommands.vim b/core/autocommands.vim index 6f08a90..c3943da 100644 --- a/core/autocommands.vim +++ b/core/autocommands.vim @@ -118,3 +118,8 @@ augroup packer_auto_compile autocmd! autocmd BufWritePost */nvim/lua/plugins.lua source <afile> | PackerCompile augroup END + +augroup auto_create_dir + autocmd! + autocmd BufWritePre * call utils#may_create_dir(expand("<afile>")) +augroup END |
