folders.vim 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. " Set up folders to be used for various temporary files, based on vim settings.
  2. " Features should be toggled in `vimrc`, or any other file before this is run.
  3. function! InitVimFolders()
  4. " Vim folders will look like `~/.vimsomething`.
  5. let prefix = $HOME . '/.vim'
  6. " List the folders to be made.
  7. let folders = {}
  8. if &swapfile
  9. let folders['swap'] = 'directory'
  10. endif
  11. if &backup
  12. let folders['backup'] = 'backupdir'
  13. endif
  14. if has('persistent_undo') && &undofile
  15. let folders['undo'] = 'undodir'
  16. endif
  17. " Create the folders.
  18. for [folder, setting] in items(folders)
  19. let path = prefix . folder . '/'
  20. if !isdirectory(path)
  21. if exists("*mkdir")
  22. call mkdir(path, "p")
  23. endif
  24. endif
  25. " Use the folders.
  26. if isdirectory(path)
  27. let path = substitute(path, " ", "\\\\ ", "g")
  28. exec "set " . setting . "=" . path
  29. else
  30. echo "Warning! Could not create folder: " . path
  31. echo "Try `mkdir -p " . path . "`"
  32. endif
  33. endfor
  34. endfunction
  35. call InitVimFolders()