" " undoskip.vim: Don't save undo history for temporary or secure files. " " Author: Tom Ryder " License: Same as Vim itself " if exists('loaded_undoskip') || &compatible || !has('persistent_undo') finish endif let loaded_undoskip = 1 " Set the paths to test; can be changed by the user let undoskip#patterns = ['^/dev/shm/.', '^/tmp/.', '^/var/tmp/.'] " Internal function returns a local value for 'undofile' function s:CheckUndoSkip() abort " If this isn't a normal buffer, don't save undo data if &buftype !=# '' return 0 endif " Get the path from the buffer name; if that path matches any of the " patterns, don't save undo data let path = bufname('%') for pattern in g:undoskip#patterns if path =~# pattern return 0 endif endfor " Otherwise, we'll use whatever the global setting is return &g:undofile endfunction " Command interface into the private function's value, does the actual set command -nargs=0 CheckUndoSkip \ let &l:undofile = s:CheckUndoSkip() " Check the path on every buffer rename, create, or read augroup undoskip autocmd! autocmd BufAdd,BufNewFile,BufRead * \ CheckUndoSkip augroup END