Sfoglia il codice sorgente

Refactor vim folder creation to honour vim settings

Also changed wording from 'dirs' to 'folders', and cleaned `vimrc`.
Weiyi Lou 10 anni fa
parent
commit
fa92d75d01
3 ha cambiato i file con 46 aggiunte e 36 eliminazioni
  1. 41 0
      vim/settings/folders.vim
  2. 0 32
      vim/settings/initialise_dirs.vim
  3. 5 4
      vim/vimrc

+ 41 - 0
vim/settings/folders.vim

@@ -0,0 +1,41 @@
+" Set up folders to be used for various temporary files, based on vim settings.
+" Features should be toggled in `vimrc`, or any other file before this is run.
+function! InitVimFolders()
+
+  " Vim folders will look like `~/.vimsomething`.
+  let prefix = $HOME . '/.vim'
+
+  " List the folders to be made.
+  let folders = {}
+  if &swapfile
+    let folders['swap'] = 'directory'
+  endif
+  if &backup
+    let folders['backup'] = 'backupdir'
+  endif
+  if has('persistent_undo') && &undofile
+    let folders['undo'] = 'undodir'
+  endif
+
+  " Create the folders.
+  for [folder, setting] in items(folders)
+    let path = prefix . folder . '/'
+
+    if !isdirectory(path)
+      if exists("*mkdir")
+        call mkdir(path, "p")
+      endif
+    endif
+
+    " Use the folders.
+    if isdirectory(path)
+      let path = substitute(path, " ", "\\\\ ", "g")
+      exec "set " . setting . "=" . path
+    else
+      echo "Warning! Could not create folder: " . path
+      echo "Try `mkdir -p " . path . "`"
+    endif
+  endfor
+endfunction
+
+call InitVimFolders()

+ 0 - 32
vim/settings/initialise_dirs.vim

@@ -1,32 +0,0 @@
-" Initialize directories {{{
-function! InitializeDirectories()
-  let parent = $HOME
-  let prefix = 'vim'
-  let dir_list = {
-        \ 'backup': 'backupdir',
-        \ 'swap': 'directory' }
-
-  if has('persistent_undo')
-    let dir_list['undo'] = 'undodir'
-  endif
-
-  let common_dir = parent . '/.' . prefix
-
-  for [dirname, settingname] in items(dir_list)
-    let directory = common_dir . dirname . '/'
-    if exists("*mkdir")
-      if !isdirectory(directory)
-        call mkdir(directory)
-      endif
-    endif
-    if !isdirectory(directory)
-      echo "Warning: Unable to create backup directory: " . directory
-      echo "Try: mkdir -p " . directory
-    else
-      let directory = substitute(directory, " ", "\\\\ ", "g")
-      exec "set " . settingname . "=" . directory
-    endif
-  endfor
-endfunction
-call InitializeDirectories()
-" }}}

+ 5 - 4
vim/vimrc

@@ -59,10 +59,11 @@ set linebreak                  " Break on words when wrapping.
 set list
 set listchars=tab:>\ ,trail:.,extends:#,nbsp:#
 
+" Persistent undo is great!
 if has('persistent_undo')
-  set undofile                " So is persistent undo ...
-  set undolevels=1000         " Maximum number of changes that can be undone
-  set undoreload=10000        " Maximum number lines to save for undo on a buffer reload
+  set undofile
+  set undolevels=1000   " Max changes that can be undone
+  set undoreload=10000  " Max lines to save for undo on a buffer reload
 endif
 
 " Join (J) options
@@ -72,7 +73,7 @@ if v:version > 703 || v:version == 703 && has("patch541")
 endif
 
 """"""""
-"" Key Remaps
+"" Mappings
 """"""""""""""""""""""""""""""""""""""""""""""""""""""
 
 let mapleader = ' '