From 6fd71557872092d6585ae8ab86605b5573ad6061 Mon Sep 17 00:00:00 2001 From: jdhao Date: Thu, 13 Jan 2022 01:51:19 +0800 Subject: [PATCH] feat: create parent dir of current file if it does not exist --- autoload/utils.vim | 9 +++++++++ core/autocommands.vim | 5 +++++ 2 files changed, 14 insertions(+) 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 | PackerCompile augroup END + +augroup auto_create_dir + autocmd! + autocmd BufWritePre * call utils#may_create_dir(expand("")) +augroup END