Create directories that don't exist in vim
diff --git a/modules/neovim/binds/binds.vim b/modules/neovim/binds/binds.vim
index c26e705..10f6dd2 100644
--- a/modules/neovim/binds/binds.vim
+++ b/modules/neovim/binds/binds.vim
@@ -9,6 +9,19 @@
     \ .'? ("'.a:to.'") : ("'.a:from.'"))'
 endfun
 
+augroup vimrc-auto-mkdir
+  autocmd!
+  autocmd BufWritePre * call s:auto_mkdir(expand('<afile>:p:h'), v:cmdbang)
+  function! s:auto_mkdir(dir, force)
+    if !isdirectory(a:dir)
+          \   && (a:force
+          \       || input("'" . a:dir . "' does not exist. Create? [y/N]") =~? '^y\%[es]$')
+      call mkdir(iconv(a:dir, &encoding, &termencoding), 'p')
+    endif
+  endfunction
+augroup END
+" https://stackoverflow.com/a/42872275/12293760
+
 command W w
 command Wq wq
 call SetupCommandAlias("git","Git")