aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-11-02 14:34:09 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-11-02 14:34:09 +1300
commitb54b01202a3f867bec3cc5b4ca7126a6801176ed (patch)
tree0ecee46b27d19a8dc5c759eaf1fee20daed298ad
parentMerge branch 'hotfix/v0.3.2' (diff)
parentAdd vim/plugin to lint-vim arguments (diff)
downloaddotfiles-b54b01202a3f867bec3cc5b4ca7126a6801176ed.tar.gz
dotfiles-b54b01202a3f867bec3cc5b4ca7126a6801176ed.zip
Merge branch 'release/v0.4.0'v0.4.0
* release/v0.4.0: Add vim/plugin to lint-vim arguments Bump version number to 0.4.0 Have bigfileturn local syntax off (configurably) Make bigfile 'synmaxcol' setting configurable Refactor plugin function for dependency injection Rename variable and autocmd to use plugin prefix Make bigfile size variable an option with default Expand comment header for bigfile.vim Move Vim big file options config into plugin Move 'tildeop' setting to new case.vim file Move 'shellpipe' setting to more logical location Make 'shellslash' setting conditional on feature
-rw-r--r--Makefile12
-rw-r--r--VERSION4
-rw-r--r--lint/vim.sh1
-rw-r--r--vim/command.vim39
-rw-r--r--vim/config/bigfile.vim28
-rw-r--r--vim/config/case.vim (renamed from vim/config/tildeop.vim)0
-rw-r--r--vim/config/command.vim3
-rw-r--r--vim/config/term.vim3
-rw-r--r--vim/doc/bigfile.txt12
-rw-r--r--vim/plugin/bigfile.vim60
10 files changed, 128 insertions, 34 deletions
diff --git a/Makefile b/Makefile
index 6440b805..c09541fd 100644
--- a/Makefile
+++ b/Makefile
@@ -474,9 +474,11 @@ install-urxvt: urxvt/ext/select
install-vim: install-vim-after \
install-vim-bundle \
install-vim-config \
+ install-vim-doc \
install-vim-ftdetect \
install-vim-ftplugin \
- install-vim-indent
+ install-vim-indent \
+ install-vim-plugin
install-vim-after:
find vim/after -name .git -prune -o \
@@ -493,6 +495,10 @@ install-vim-config:
cp -p -- vim/vimrc $(HOME)/.vimrc
cp -p -- vim/config/*.vim $(HOME)/.vim/config
+install-vim-doc:
+ mkdir -p -- $(HOME)/.vim/doc
+ cp -p -- vim/doc/*.txt $(HOME)/.vim/doc
+
install-vim-ftdetect:
mkdir -p -- $(HOME)/.vim/ftdetect
cp -p -- vim/ftdetect/*.vim $(HOME)/.vim/ftdetect
@@ -505,6 +511,10 @@ install-vim-indent:
mkdir -p -- $(HOME)/.vim/indent
cp -p -- vim/indent/*.vim $(HOME)/.vim/indent
+install-vim-plugin:
+ mkdir -p -- $(HOME)/.vim/plugin
+ cp -p -- vim/plugin/*.vim $(HOME)/.vim/plugin
+
install-vim-gui: install-vim \
install-vim-gui-config
diff --git a/VERSION b/VERSION
index 3b8694f2..b787a6dd 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-tejr dotfiles v0.3.2
-Wed Nov 1 13:11:51 NZDT 2017
+tejr dotfiles v0.4.0
+Thu Nov 2 14:31:35 NZDT 2017
diff --git a/lint/vim.sh b/lint/vim.sh
index d876d770..c370e177 100644
--- a/lint/vim.sh
+++ b/lint/vim.sh
@@ -5,6 +5,7 @@ set -- \
vim/ftplugin \
vim/gvimrc \
vim/indent \
+ vim/plugin \
vim/vimrc
vint -s -- "$@" || exit
printf 'Vim configuration linted successfully.\n'
diff --git a/vim/command.vim b/vim/command.vim
new file mode 100644
index 00000000..af7c8e36
--- /dev/null
+++ b/vim/command.vim
@@ -0,0 +1,39 @@
+" Keep plenty of command and search history, because disk space is cheap
+set history=2000
+
+" Always tell me the number of lines changed by a command
+set report=0
+
+" Command-line based features
+if has('cmdline_info')
+
+ " Show my current position in the status bar
+ set ruler
+
+ " Show the keystrokes being entered in the screen
+ set showcmd
+
+ " Show the mode we're using if not normal mode (e.g. --INSERT--)
+ set showmode
+endif
+
+" Always use forward slashes, I very seldom need to use Vim on Windows for
+" more than scratch space anyway
+if exists('+shellslash')
+ set shellslash
+endif
+
+" Tolerate typos like :Wq, :Q, or :Qa and do what I mean, including any
+" arguments or modifiers; I fat-finger these commands a lot because I type
+" them so rapidly, and they don't correspond to any other commands I use
+if has('user_commands')
+ command! -bang -complete=file -nargs=? E e<bang> <args>
+ command! -bang -complete=file -nargs=? W w<bang> <args>
+ command! -bang -complete=file -nargs=? WQ wq<bang> <args>
+ command! -bang -complete=file -nargs=? Wq wq<bang> <args>
+ command! -bang Q q<bang>
+ command! -bang Qa qa<bang>
+ command! -bang QA qa<bang>
+ command! -bang Wa wa<bang>
+ command! -bang WA wa<bang>
+endif
diff --git a/vim/config/bigfile.vim b/vim/config/bigfile.vim
deleted file mode 100644
index 5c68b1a7..00000000
--- a/vim/config/bigfile.vim
+++ /dev/null
@@ -1,28 +0,0 @@
-" When opening a large file, take some measures to keep things loading quickly
-if has('eval') && has('autocmd')
-
- " Threshold is 10 MiB
- let g:big_file_size = 10 * 1024 * 1024
-
- " Declare function for turning off slow options
- function! s:BigFileMeasures()
- let l:file = expand('<afile>')
- if getfsize(l:file) > g:big_file_size
- 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 dotfiles_big_file_measures
- autocmd!
- autocmd BufReadPre * call s:BigFileMeasures()
- augroup end
-endif
diff --git a/vim/config/tildeop.vim b/vim/config/case.vim
index bb21aefd..bb21aefd 100644
--- a/vim/config/tildeop.vim
+++ b/vim/config/case.vim
diff --git a/vim/config/command.vim b/vim/config/command.vim
index a7389cfb..1d2b647a 100644
--- a/vim/config/command.vim
+++ b/vim/config/command.vim
@@ -17,6 +17,9 @@ if has('cmdline_info')
set showmode
endif
+" Don't write the output of :make to the terminal
+set shellpipe=>
+
" Always use forward slashes, I very seldom need to use Vim on Windows for
" more than scratch space anyway
set shellslash
diff --git a/vim/config/term.vim b/vim/config/term.vim
index f368e481..8dbda431 100644
--- a/vim/config/term.vim
+++ b/vim/config/term.vim
@@ -22,6 +22,3 @@ set timeoutlen=1000
" correctly; I don't use Escape as a meta key anyway
set ttimeout
set ttimeoutlen=50
-
-" Don't write the output of :make to the terminal
-set shellpipe=>
diff --git a/vim/doc/bigfile.txt b/vim/doc/bigfile.txt
new file mode 100644
index 00000000..d7e56f28
--- /dev/null
+++ b/vim/doc/bigfile.txt
@@ -0,0 +1,12 @@
+*bigfile.txt* Disable slow options for big files to speed things up
+
+Author: Tom Ryder <tom@sanctum.geek.nz>
+License: Same terms as Vim itself (see |license|)
+
+This plugin adds an |autocmd| hook to check the file size of an incoming
+buffer, and if it's over a certain threshold, disables certain options in order
+to make the file a bit easier to edit.
+
+This plugin lives in Tom Ryder's "dotfiles" suite, and will eventually be spun
+off into a separate distribution as it solidifies and this documentation
+improves.
diff --git a/vim/plugin/bigfile.vim b/vim/plugin/bigfile.vim
new file mode 100644
index 00000000..fece3d9b
--- /dev/null
+++ b/vim/plugin/bigfile.vim
@@ -0,0 +1,60 @@
+"
+" bigfile.vim: When opening a large file, take some measures to keep things
+" loading quickly.
+"
+" Author: Tom Ryder <tom@sanctum.geek.nz>
+" Copyright: 2017
+" License: Same as Vim itself
+"
+if has('eval') && has('autocmd')
+
+ " Default threshold is 10 MiB
+ if !exists('g:bigfile_size')
+ let g:bigfile_size = 10 * 1024 * 1024
+ endif
+
+ " Default to leaving syntax highlighting off
+ if !exists('g:bigfile_syntax')
+ let g:bigfile_syntax = 0
+ endif
+
+ " Cut 'synmaxcol' down to this or smaller for big files
+ if !exists('g:bigfile_size_synmaxcol')
+ let g:bigfile_size_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:bigfile_size_synmaxcol
+ execute 'setlocal synmaxcol=' . g:bigfile_size_synmaxcol
+ endif
+
+ " Disable syntax highlighting if configured to do so
+ if !g:bigfile_syntax
+ setlocal syntax=OFF
+ endif
+
+ endfunction
+
+ " Define autocmd for calling to check filesize
+ augroup bigfile_options_bufreadpre
+ autocmd!
+ autocmd BufReadPre * call s:BigFileOptions(expand('<afile>'), g:bigfile_size)
+ augroup end
+
+endif