From 2a5c13af2519c09be8cb8bd80430f8f8a4aa112f Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 May 2020 23:19:44 +1200 Subject: Add plugin undoskip.vim; switch 'undofile' on path --- vim/plugin/undoskip.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 vim/plugin/undoskip.vim diff --git a/vim/plugin/undoskip.vim b/vim/plugin/undoskip.vim new file mode 100644 index 00000000..d3ebcca2 --- /dev/null +++ b/vim/plugin/undoskip.vim @@ -0,0 +1,10 @@ +" Don't save undo history for temporary or secure files +augroup undoskip + autocmd! + autocmd BufAdd,BufNewFile,BufRead + \ * + \ setlocal undofile< + autocmd BufAdd,BufNewFile,BufRead + \ /dev/shm/*,/tmp/*,/var/tmp/* + \ setlocal noundofile +augroup END -- cgit v1.2.3 From 7e0e503fb431a90b61ff66b7b6cbd7a8d49a4e58 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 May 2020 23:44:09 +1200 Subject: Flesh out new undoskip.vim plugin a lot --- vim/plugin/undoskip.vim | 50 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/vim/plugin/undoskip.vim b/vim/plugin/undoskip.vim index d3ebcca2..80609433 100644 --- a/vim/plugin/undoskip.vim +++ b/vim/plugin/undoskip.vim @@ -1,10 +1,46 @@ -" Don't save undo history for temporary or secure files +" +" 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 || v:version < 700 + 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 - \ * - \ setlocal undofile< - autocmd BufAdd,BufNewFile,BufRead - \ /dev/shm/*,/tmp/*,/var/tmp/* - \ setlocal noundofile + autocmd BufAdd,BufNewFile,BufRead * + \ CheckUndoSkip augroup END -- cgit v1.2.3 From 18df8bbe2e351496b7410deb80072c0dcb49ea96 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 May 2020 23:44:44 +1200 Subject: Bump VERSION --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 31dbc5f6..3ae41974 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -tejr dotfiles v8.27.0 -Sun, 03 May 2020 10:39:52 +0000 +tejr dotfiles v8.28.0 +Sun, 03 May 2020 11:44:44 +0000 -- cgit v1.2.3