diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-04 18:48:22 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-04 18:48:22 +1300 |
commit | 63087e57b8b1aa030b431b86f3be533ee20f07dc (patch) | |
tree | d9c129817e6e9722bdd8c559dc2f341991b68040 /vim/plugin/big_file.vim | |
parent | Merge branch 'hotfix/v0.6.1' (diff) | |
parent | Update dotfiles(7) manual from README.md (diff) | |
download | dotfiles-a24ca4fd5b9d7d954475a311d9ae402949884286.tar.gz (sig) dotfiles-a24ca4fd5b9d7d954475a311d9ae402949884286.zip |
Merge branch 'release/v0.7.0'v0.7.0
* release/v0.7.0: (21 commits)
Update dotfiles(7) manual from README.md
Bump version number
Add heading for Vim plugins subsection
Update README to mention Vim plugins
Rename toggle plugin again, use commands not funcs
Add short documentation for new custom plugins
Use same comment boilerplate for custom plugins
Check 'eval' feature for loading command_typos.vim
Wrap detect_background.vim func call in 'silent!'
Rename and refactor option toggle plugin
Don't suggest mappings in Vim plugin comments
Move Vim background detection logic into plugin
Specify an install-vim-autoload target
Spin 'fo' toggle out into new flag toggler plugin
Spin copyable linebreak config into new plugin
Spin stable join config out into new plugin
Use <Plug> prefix, make space strip configurable
Rename a misnamed variable in big_file.vim
Rename bigfile plugin to big_file
Move trailing space strip config into plugin
...
Diffstat (limited to 'vim/plugin/big_file.vim')
-rw-r--r-- | vim/plugin/big_file.vim | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/vim/plugin/big_file.vim b/vim/plugin/big_file.vim new file mode 100644 index 00000000..ec30158a --- /dev/null +++ b/vim/plugin/big_file.vim @@ -0,0 +1,59 @@ +" +" big_file.vim: When opening a large file, take some measures to keep things +" loading quickly. +" +" Author: Tom Ryder <tom@sanctum.geek.nz> +" License: Same as Vim itself +" +if has('eval') && has('autocmd') + + " Default threshold is 10 MiB + if !exists('g:big_file_size') + let g:big_file_size = 10 * 1024 * 1024 + endif + + " Default to leaving syntax highlighting off + if !exists('g:big_file_syntax') + let g:big_file_syntax = 0 + endif + + " Cut 'synmaxcol' down to this or smaller for big files + if !exists('g:big_file_synmaxcol') + let g:big_file_synmaxcol = 256 + endif + + " Declare function for turning off slow options + function! s:BigFileOptions(name, size) + + " Don't do anything if the file is under the threshold + if getfsize(a:name) <= a:size + return + endif + + " Turn off backups, swap files, and undo files + setlocal nobackup + setlocal nowritebackup + setlocal noswapfile + if has('persistent_undo') + setlocal noundofile + endif + + " Limit the number of columns of syntax highlighting + if exists('&synmaxcol') && &synmaxcol > g:big_file_synmaxcol + execute 'setlocal synmaxcol=' . g:big_file_synmaxcol + endif + + " Disable syntax highlighting if configured to do so + if !g:big_file_syntax + setlocal syntax=OFF + endif + + endfunction + + " Define autocmd for calling to check filesize + augroup big_file_options_bufreadpre + autocmd! + autocmd BufReadPre * call s:BigFileOptions(expand('<afile>'), g:big_file_size) + augroup end + +endif |