" Borrowed from https://gist.github.com/mllg/5353184 " It's like `find ~/.vim/tmp/undo -type f -mtime +31 -delete` but portable function Tmpwatch(path, days) let l:path = expand(a:path) if isdirectory(l:path) for file in split(globpath(l:path, "*"), "\n") if localtime() > getftime(file) + 86400 * a:days && delete(file) != 0 echoerr "Tmpwatch(): Error deleting '" . file . "'" endif endfor else echoerr "Tmpwatch(): Directory '" . l:path . "' not found" endif endfunction " undofile part of your .vimrc if exists("+undofile") && !empty(&undodir) && (&undodir != '.') " remove undo files which have not been modified for 31 days call Tmpwatch(&undodir, 31) endif