aboutsummaryrefslogtreecommitdiff
path: root/vim/config/bigfile.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/config/bigfile.vim')
-rw-r--r--vim/config/bigfile.vim28
1 files changed, 28 insertions, 0 deletions
diff --git a/vim/config/bigfile.vim b/vim/config/bigfile.vim
new file mode 100644
index 00000000..f15c7e85
--- /dev/null
+++ b/vim/config/bigfile.vim
@@ -0,0 +1,28 @@
+" When opening a large file, take some measures to keep things loading quickly
+if has('eval') && has('autocmd')
+
+ " Threshold is 10 MiB
+ let g:bigfilesize = 10 * 1024 * 1024
+
+ " Declare function for turning off slow options
+ function! BigFileMeasures()
+ let l:file = expand('<afile>')
+ if getfsize(l:file) > g:bigfilesize
+ setlocal nobackup
+ setlocal nowritebackup
+ setlocal noswapfile
+ if has('persistent_undo')
+ setlocal noundofile
+ endif
+ if exists('&synmaxcol')
+ setlocal synmaxcol=256
+ endif
+ endif
+ endfunction
+
+ " Define autocmd for calling to check filesize
+ augroup bigfilesize
+ autocmd!
+ autocmd BufReadPre * call BigFileMeasures()
+ augroup end
+endif