+set timeout timeoutlen=3000 ttimeoutlen=100 " allow timing out up to 3 seconds halfway into a mapping; 100 ms to wait for a key code or mapped key sequence to complete
+
+" 19 reading and writing files
+if v:version >= 703
+ set cryptmethod=blowfish " encryption method for file writing: zip or blowfish
+endif
+
+" 20 the swap file
+
+let myUndoDir = expand('~/tmp/vim/undo')
+if !isdirectory(myUndoDir)
+ " Create dirs
+ call mkdir(myUndoDir, 'p')
+endif
+
+" list of directories for the swap file; remove . (the current directory)
+if has("win32")
+ set directory=~/tmp/vim//,$TEMP//,c:/tmp//,c:/temp//
+else
+ set directory=~/tmp/vim//,~/tmp//,/var/tmp//,/tmp//
+endif
+" if a directory ends in two path separators "//"
+" or "\\", the swap file name will be built from the complete path to
+" the file with all path separators substituted to percent '%' signs.
+" This will ensure file name uniqueness in the preserve directory.