diff options
43 files changed, 434 insertions, 305 deletions
@@ -39,11 +39,13 @@ install-urxvt \ install-vim \ install-vim-after \ + install-vim-after-ftdetect \ + install-vim-after-indent \ + install-vim-after-syntax \ install-vim-autoload \ install-vim-bundle \ install-vim-config \ install-vim-ftdetect \ - install-vim-ftplugin \ install-vim-gui \ install-vim-gui-config \ install-vim-indent \ @@ -483,14 +485,27 @@ install-vim: install-vim-after \ install-vim-config \ install-vim-doc \ install-vim-ftdetect \ - install-vim-ftplugin \ install-vim-indent \ install-vim-plugin -install-vim-after: - find vim/after -name .git -prune -o \ - -type d -exec sh -c 'mkdir -p -- $(HOME)/."$$1"' _ {} \; -o \ - -type f -exec sh -c 'cp -p -- "$$1" $(HOME)/."$$1"' _ {} \; +install-vim-after: install-vim-after-ftplugin \ + install-vim-after-indent \ + install-vim-after-syntax + +install-vim-after-ftplugin: + mkdir -p $(HOME)/.vim/after/ftplugin + for type in vim/after/ftplugin/* ; do \ + mkdir -p -- $(HOME)/.vim/after/ftplugin/"$${type##*/}" ; \ + cp -p "$$type"/* $(HOME)/.vim/after/ftplugin/"$${type##*/}" ; \ + done + +install-vim-after-indent: + mkdir -p $(HOME)/.vim/after/indent + cp -p -- vim/after/indent/*.vim $(HOME)/.vim/after/indent + +install-vim-after-syntax: + mkdir -p $(HOME)/.vim/after/syntax + cp -p -- vim/after/syntax/*.vim $(HOME)/.vim/after/syntax install-vim-autoload: mkdir -p -- $(HOME)/.vim/autoload @@ -514,14 +529,8 @@ install-vim-ftdetect: mkdir -p -- $(HOME)/.vim/ftdetect cp -p -- vim/ftdetect/*.vim $(HOME)/.vim/ftdetect -install-vim-ftplugin: - mkdir -p -- $(HOME)/.vim/ftplugin - cp -p -- vim/ftplugin.vim $(HOME)/.vim/ftplugin.vim - cp -p -- vim/ftplugin/*.vim $(HOME)/.vim/ftplugin - install-vim-indent: mkdir -p -- $(HOME)/.vim/indent - cp -p -- vim/indent.vim $(HOME)/.vim/indent.vim cp -p -- vim/indent/*.vim $(HOME)/.vim/indent install-vim-plugin: diff --git a/lint/vim.sh b/lint/vim.sh index 64ac63ba..9af8d203 100644 --- a/lint/vim.sh +++ b/lint/vim.sh @@ -3,7 +3,6 @@ set -- \ vim/autoload \ vim/config \ vim/ftdetect \ - vim/ftplugin \ vim/gvimrc \ vim/indent \ vim/plugin \ diff --git a/vim/after/ftplugin/html/lint.vim b/vim/after/ftplugin/html/lint.vim new file mode 100644 index 00000000..f6648056 --- /dev/null +++ b/vim/after/ftplugin/html/lint.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_html_lint') || &compatible + finish +endif +let b:did_ftplugin_html_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_lint' + +" Set up a mapping for the linter, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>HtmlLint + \ :<C-U>write !tidy -errors -quiet<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>HtmlLint' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>HtmlLint') + nmap <buffer> <unique> + \ <LocalLeader>l + \ <Plug>HtmlLint + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>l' + endif + +endif diff --git a/vim/after/ftplugin/html/tidy.vim b/vim/after/ftplugin/html/tidy.vim new file mode 100644 index 00000000..e5d24541 --- /dev/null +++ b/vim/after/ftplugin/html/tidy.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_html_tidy') || &compatible + finish +endif +let b:did_ftplugin_html_tidy = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_tidy' + +" Set up a mapping for the tidier, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>HtmlTidy + \ :<C-U>%!tidy -quiet<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>HtmlTidy' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>HtmlTidy') + nmap <buffer> <unique> + \ <LocalLeader>t + \ <Plug>HtmlTidy + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>t' + endif + +endif diff --git a/vim/after/ftplugin/html/url_link.vim b/vim/after/ftplugin/html/url_link.vim new file mode 100644 index 00000000..cb0d6253 --- /dev/null +++ b/vim/after/ftplugin/html/url_link.vim @@ -0,0 +1,47 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_html_url_link') || &compatible + finish +endif +let b:did_ftplugin_html_url_link = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_url_link' + +" Make a bare URL into a link to itself +if !exists('*s:UrlLink') + function! s:UrlLink() + + " Yank this whole whitespace-separated word + normal! yiW + " Open a link tag + normal! i<a href=""> + " Paste the URL into the quotes + normal! hP + " Move to the end of the link text URL + normal! E + " Close the link tag + normal! a</a> + + endfunction +endif + +" Set up a mapping for the function, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>HtmlUrlLink + \ :<C-U>call <SID>HtmlUrlLink()<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>HtmlUrlLink' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>HtmlUrlLink') + nmap <buffer> <unique> + \ <LocalLeader>r + \ <Plug>HtmlUrlLink + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>r' + endif + +endif diff --git a/vim/after/ftplugin/mail/format_flowed.vim b/vim/after/ftplugin/mail/format_flowed.vim new file mode 100644 index 00000000..b1b308fb --- /dev/null +++ b/vim/after/ftplugin/mail/format_flowed.vim @@ -0,0 +1,13 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_mail_format_flowed') || &compatible + finish +endif +let b:did_ftplugin_mail_format_flowed = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_mail_format_flowed' + +" Use trailing whitespace to denote continued paragraph +setlocal formatoptions+=w +let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal formatoptions<' diff --git a/vim/after/ftplugin/markdown/spell.vim b/vim/after/ftplugin/markdown/spell.vim new file mode 100644 index 00000000..8f9ce4a4 --- /dev/null +++ b/vim/after/ftplugin/markdown/spell.vim @@ -0,0 +1,15 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_markdown_spell') || &compatible + finish +endif +let b:did_ftplugin_markdown_spell = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_markdown_spell' + +" Spellcheck documents by default +if has('syntax') + setlocal spell + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' +endif diff --git a/vim/after/ftplugin/perl/check.vim b/vim/after/ftplugin/perl/check.vim new file mode 100644 index 00000000..24a174ff --- /dev/null +++ b/vim/after/ftplugin/perl/check.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_perl_check') || &compatible + finish +endif +let b:did_ftplugin_perl_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_check' + +" Set up a mapping for the checker, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>PerlCheck + \ :<C-U>write !perl -c<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>PerlCheck' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>PerlCheck') + nmap <buffer> <unique> + \ <LocalLeader>c + \ <Plug>PerlCheck + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>c' + endif + +endif diff --git a/vim/after/ftplugin/perl/lint.vim b/vim/after/ftplugin/perl/lint.vim new file mode 100644 index 00000000..8f6915f4 --- /dev/null +++ b/vim/after/ftplugin/perl/lint.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_perl_lint') || &compatible + finish +endif +let b:did_ftplugin_perl_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_lint' + +" Set up a mapping for the linter, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>PerlLint + \ :<C-U>write !perlcritic<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>PerlLint' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>PerlLint') + nmap <buffer> <unique> + \ <LocalLeader>l + \ <Plug>PerlLint + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>l' + endif + +endif diff --git a/vim/after/ftplugin/perl/tidy.vim b/vim/after/ftplugin/perl/tidy.vim new file mode 100644 index 00000000..b2aa25c3 --- /dev/null +++ b/vim/after/ftplugin/perl/tidy.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_perl_tidy') || &compatible + finish +endif +let b:did_ftplugin_perl_tidy = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_tidy' + +" Set up a mapping for the tidier, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>PerlTidy + \ :<C-U>%!perltidy<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>PerlTidy' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>PerlTidy') + nmap <buffer> <unique> + \ <LocalLeader>t + \ <Plug>PerlTidy + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>t' + endif + +endif diff --git a/vim/after/ftplugin/sh/bash_han.vim b/vim/after/ftplugin/sh/bash_han.vim new file mode 100644 index 00000000..c1997d7e --- /dev/null +++ b/vim/after/ftplugin/sh/bash_han.vim @@ -0,0 +1,15 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_sh_bash_han') || &compatible + finish +endif +let b:did_ftplugin_sh_bash_han = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_bash_han' + +" Use han(1df) as a man(1) wrapper for Bash files if available +if exists('b:is_bash') && executable('han') + setlocal keywordprg=han + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal keywordprg<' +endif diff --git a/vim/after/ftplugin/sh/check.vim b/vim/after/ftplugin/sh/check.vim new file mode 100644 index 00000000..5000137d --- /dev/null +++ b/vim/after/ftplugin/sh/check.vim @@ -0,0 +1,40 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_sh_check') || &compatible + finish +endif +let b:did_ftplugin_sh_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_check' + +" Choose checker based on shell family +if exists('b:is_bash') + let b:sh_check = 'write !bash -n' +elseif exists('b:is_kornshell') + let b:sh_check = 'write !ksh -n' +else + let b:sh_check = 'write !sh -n' +endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:sh_check' + +" Set up a mapping for the checker, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>ShCheck + \ :<C-U>execute b:sh_check<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>ShCheck' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>ShCheck') + nmap <buffer> <unique> + \ <LocalLeader>c + \ <Plug>ShCheck + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>c' + endif + +endif diff --git a/vim/after/ftplugin/sh/lint.vim b/vim/after/ftplugin/sh/lint.vim new file mode 100644 index 00000000..54f86bea --- /dev/null +++ b/vim/after/ftplugin/sh/lint.vim @@ -0,0 +1,40 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_sh_lint') || &compatible + finish +endif +let b:did_ftplugin_sh_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_lint' + +" Choose linter based on shell family +if exists('b:is_bash') + let b:sh_lint = 'write !shellcheck -s bash -' +elseif exists('b:is_kornshell') + let b:sh_lint = 'write !shellcheck -s ksh -' +else + let b:sh_lint = 'write !shellcheck -s sh -' +endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:sh_lint' + +" Set up a mapping for the linter, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>ShLint + \ :<C-U>execute b:sh_lint<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>ShLint' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>ShLint') + nmap <buffer> <unique> + \ <LocalLeader>l + \ <Plug>ShLint + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>l' + endif + +endif diff --git a/vim/after/ftplugin/sh/posix.vim b/vim/after/ftplugin/sh/posix.vim new file mode 100644 index 00000000..ef6b9b93 --- /dev/null +++ b/vim/after/ftplugin/sh/posix.vim @@ -0,0 +1,25 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_sh_posix') || &compatible + finish +endif +let b:did_ftplugin_sh_posix = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_posix' + +" +" If we have a #!/bin/sh shebang and filetype.vim determined we were neither +" POSIX nor Bash nor Korn shell, we'll guess POSIX, just because it's far more +" likely that's what I want to write than plain Bourne shell. +" +" You're supposed to be able to do this by setting g:is_posix, but if that's +" set, the syntax file ends up setting g:is_kornshell for you too, for reasons +" I don't really understand. This method works though, and is cleaner than +" the other workaround I had been trying. +" +if exists('b:is_sh') + unlet b:is_sh + if !exists('b:is_bash') && !exists('b:is_kornshell') + let b:is_posix = 1 + endif +endif diff --git a/vim/after/ftplugin/text/spell.vim b/vim/after/ftplugin/text/spell.vim new file mode 100644 index 00000000..107723e5 --- /dev/null +++ b/vim/after/ftplugin/text/spell.vim @@ -0,0 +1,15 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_text_spell') || &compatible + finish +endif +let b:did_ftplugin_text_spell = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_text_spell' + +" Spellcheck documents by default +if has('syntax') + setlocal spell + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' +endif diff --git a/vim/after/ftplugin/vim/lint.vim b/vim/after/ftplugin/vim/lint.vim new file mode 100644 index 00000000..5e4ea601 --- /dev/null +++ b/vim/after/ftplugin/vim/lint.vim @@ -0,0 +1,29 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_vim_lint') || &compatible + finish +endif +let b:did_ftplugin_vim_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_vim_lint' + +" Set up a mapping for the linter, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_vim_maps') + + " Define a mapping target + nnoremap <buffer> <silent> <unique> + \ <Plug>VimLint + \ :<C-U>write !vint -s /dev/stdin<CR> + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <Plug>VimLint' + + " If there isn't a key mapping already, use a default one + if !hasmapto('<Plug>VimLint') + nmap <buffer> <unique> + \ <LocalLeader>l + \ <Plug>VimLint + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap <buffer> <LocalLeader>l' + endif + +endif diff --git a/vim/after/indent/vim.vim b/vim/after/indent/vim.vim new file mode 100644 index 00000000..b87964a4 --- /dev/null +++ b/vim/after/indent/vim.vim @@ -0,0 +1,5 @@ +" Observe VimL conventions for two-space indents +setlocal shiftwidth=2 +setlocal softtabstop=2 +let b:undo_indent = b:undo_indent + \ . '|setlocal shiftwidth< softtabstop<' diff --git a/vim/doc/user_ftplugin.txt b/vim/doc/user_ftplugin.txt deleted file mode 100644 index 603bf4d0..00000000 --- a/vim/doc/user_ftplugin.txt +++ /dev/null @@ -1,27 +0,0 @@ -*user_ftplugin.txt* "Undo" for local ftplugin files - -Author: Tom Ryder <tom@sanctum.geek.nz> -License: Same terms as Vim itself (see |license|) - -This plugin adds an |autocmd| hook to |FileType| to run before the one that the -core ftplugin.vim sets, to allow setting a b:undo_user_ftplugin variable with -code to |:execute| when the filetype is next changed, in much the same way that -the core files in Vim >= 7.0x support a b:|undo_ftplugin| variable. - -This will only work if it's loaded before ftplugin.vim so that the autocmd -hooks run in the right order. There are a couple of ways to do this: - -1. Create your own ~/.vim/ftplugin.vim with the following contents: - - silent! runtime plugin/user_ftplugin.vim - - This will then be sourced before the core ftplugin.vim runs. This is the - suggested method. - -2. Run the same line in your ~/.vimrc before your `filetype ftplugin on` line. - -See also: user_indent.vim. - -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/doc/user_indent.txt b/vim/doc/user_indent.txt deleted file mode 100644 index e0152e32..00000000 --- a/vim/doc/user_indent.txt +++ /dev/null @@ -1,27 +0,0 @@ -*user_indent.txt* "Undo" for local indent files - -Author: Tom Ryder <tom@sanctum.geek.nz> -License: Same terms as Vim itself (see |license|) - -This plugin adds an |autocmd| hook to |FileType| to run before the one that the -core indent.vim sets, to allow setting a b:undo_user_indent variable with -code to |:execute| when the filetype is next changed, in much the same way that -the core files in Vim >= 7.0x support a b:|undo_indent| variable. - -This will only work if it's loaded before indent.vim so that the autocmd hooks -run in the right order. There are a couple of ways to do this: - -1. Create your own ~/.vim/indent.vim with the following contents: - - silent! runtime plugin/user_indent.vim - - This will then be sourced before the core indent.vim runs. This is the - suggested method. - -2. Run the same line in your ~/.vimrc before your `filetype indent on` line. - -See also: user_ftplugin.vim. - -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/ftplugin.vim b/vim/ftplugin.vim deleted file mode 100644 index 21665dad..00000000 --- a/vim/ftplugin.vim +++ /dev/null @@ -1 +0,0 @@ -silent! runtime plugin/user_ftplugin.vim diff --git a/vim/ftplugin/html.vim b/vim/ftplugin/html.vim deleted file mode 100644 index d2c6a3e3..00000000 --- a/vim/ftplugin/html.vim +++ /dev/null @@ -1,36 +0,0 @@ -" Run `tidy -errors -quiet` over buffer -nnoremap <buffer> <silent> - \ <LocalLeader>c - \ :<C-U>write !tidy -errors -quiet<CR> - -" Filter buffer through `tidy` -nnoremap <buffer> <silent> - \ <LocalLeader>t - \ :<C-U>%!tidy -quiet<CR> - -" Make a bare URL into a link to itself -function! s:UrlLink() - - " Yank this whole whitespace-separated word - normal! yiW - " Open a link tag - normal! i<a href=""> - " Paste the URL into the quotes - normal! hP - " Move to the end of the link text URL - normal! E - " Close the link tag - normal! a</a> - -endfunction - -" Mapping for the function above -nnoremap <buffer> <silent> - \ <LocalLeader>r - \ :<C-U>call <SID>UrlLink()<CR> - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'silent! nunmap <LocalLeader>c' - \ . '|silent! nunmap <LocalLeader>t' - \ . '|silent! nunmap <LocalLeader>r' diff --git a/vim/ftplugin/mail.vim b/vim/ftplugin/mail.vim deleted file mode 100644 index 697ce499..00000000 --- a/vim/ftplugin/mail.vim +++ /dev/null @@ -1,6 +0,0 @@ -" Use trailing whitespace to denote continued paragraph -setlocal formatoptions+=w - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'setlocal formatoptions<' diff --git a/vim/ftplugin/markdown.vim b/vim/ftplugin/markdown.vim deleted file mode 100644 index f26fb156..00000000 --- a/vim/ftplugin/markdown.vim +++ /dev/null @@ -1,8 +0,0 @@ -" Spellcheck documents by default -if has('syntax') - setlocal spell -endif - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'silent! setlocal spell<' diff --git a/vim/ftplugin/perl.vim b/vim/ftplugin/perl.vim deleted file mode 100644 index 5549e33d..00000000 --- a/vim/ftplugin/perl.vim +++ /dev/null @@ -1,20 +0,0 @@ -" Run `perl -c` over buffer -nnoremap <buffer> <silent> - \ <LocalLeader>c - \ :<C-U>write !perl -c<CR> - -" Run `perlcritic` over buffer -nnoremap <buffer> <silent> - \ <LocalLeader>l - \ :<C-U>write !perlcritic<CR> - -" Filter buffer through `perltidy` -nnoremap <buffer> <silent> - \ <LocalLeader>t - \ :<C-U>%!perltidy<CR> - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'silent! nunmap <LocalLeader>c' - \ . '|silent! nunmap <LocalLeader>l' - \ . '|silent! nunmap <LocalLeader>t' diff --git a/vim/ftplugin/sh.vim b/vim/ftplugin/sh.vim deleted file mode 100644 index 60e8b6c4..00000000 --- a/vim/ftplugin/sh.vim +++ /dev/null @@ -1,53 +0,0 @@ -" -" If we have a #!/bin/sh shebang and filetype.vim determined we were neither -" POSIX nor Bash nor Korn shell, we'll guess POSIX, just because it's far more -" likely that's what I want to write than plain Bourne shell. -" -" You're supposed to be able to do this by setting g:is_posix, but if that's -" set, the syntax file ends up setting g:is_kornshell for you too, for reasons -" I don't really understand. This method works though, and is cleaner than -" the other workaround I had been trying. -" -if exists('b:is_sh') - unlet b:is_sh - if !exists('b:is_bash') && !exists('b:is_kornshell') - let b:is_posix = 1 - endif -endif - -" Use han(1df) as a man(1) wrapper for Bash files if available -if exists('b:is_bash') - \ && executable('han') - setlocal keywordprg=han -endif - -" Map checker based on shell family -if exists('b:is_bash') - let b:sh_check = 'write !bash -n' -elseif exists('b:is_kornshell') - let b:sh_check = 'write !ksh -n' -else - let b:sh_check = 'write !sh -n' -endif -nnoremap <buffer> <silent> - \ <LocalLeader>c - \ :<C-U>execute b:sh_check<CR> - -" Map linter based on shell family -if exists('b:is_bash') - let b:sh_lint = 'write !shellcheck -s bash -' -elseif exists('b:is_kornshell') - let b:sh_lint = 'write !shellcheck -s ksh -' -else - let b:sh_lint = 'write !shellcheck -s sh -' -endif -nnoremap <buffer> <silent> - \ <LocalLeader>l - \ :<C-U>execute b:sh_lint<CR> - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'setlocal keywordprg<' - \ . '|unlet! b:sh_check b:sh_lint' - \ . '|silent! nunmap <LocalLeader>c' - \ . '|silent! nunmap <LocalLeader>l' diff --git a/vim/ftplugin/text.vim b/vim/ftplugin/text.vim deleted file mode 100644 index f26fb156..00000000 --- a/vim/ftplugin/text.vim +++ /dev/null @@ -1,8 +0,0 @@ -" Spellcheck documents by default -if has('syntax') - setlocal spell -endif - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'silent! setlocal spell<' diff --git a/vim/ftplugin/vim.vim b/vim/ftplugin/vim.vim deleted file mode 100644 index e8113134..00000000 --- a/vim/ftplugin/vim.vim +++ /dev/null @@ -1,10 +0,0 @@ -" Run `vint` over buffer -" /dev/stdin is not optimal here; it's widely implemented, but not POSIX. -" `vint` does not seem to have another way to parse standard input. -nnoremap <buffer> <silent> - \ <LocalLeader>l - \ :<C-U>write !vint -s /dev/stdin<CR> - -" Unload this filetype plugin -let b:undo_user_ftplugin - \ = 'silent! nunmap <LocalLeader>l' diff --git a/vim/indent.vim b/vim/indent.vim deleted file mode 100644 index baedf89b..00000000 --- a/vim/indent.vim +++ /dev/null @@ -1 +0,0 @@ -silent! runtime plugin/user_indent.vim diff --git a/vim/indent/csv.vim b/vim/indent/csv.vim index ae2b6f6c..d092838f 100644 --- a/vim/indent/csv.vim +++ b/vim/indent/csv.vim @@ -1,7 +1,11 @@ +" Only do this when not done yet for this buffer +if exists('b:did_indent') + finish +endif +let b:did_indent = 1 + " Manual indenting and literal tabs for CSVs setlocal noautoindent setlocal noexpandtab - -" Unload this indent plugin -let b:undo_user_indent +let b:undo_indent \ = 'setlocal autoindent< expandtab<' diff --git a/vim/indent/tsv.vim b/vim/indent/tsv.vim index 759602ed..56721a4c 100644 --- a/vim/indent/tsv.vim +++ b/vim/indent/tsv.vim @@ -1,7 +1,11 @@ +" Only do this when not done yet for this buffer +if exists('b:did_indent') + finish +endif +let b:did_indent = 1 + " Manual indenting and literal tabs for TSVs setlocal noautoindent setlocal noexpandtab - -" Unload this indent plugin -let b:undo_user_indent +let b:undo_indent \ = 'setlocal autoindent< expandtab<' diff --git a/vim/indent/vim.vim b/vim/indent/vim.vim deleted file mode 100644 index 138b9205..00000000 --- a/vim/indent/vim.vim +++ /dev/null @@ -1,9 +0,0 @@ -" Observe VimL conventions for two-space indents -setlocal shiftwidth=2 -setlocal softtabstop=2 -setlocal tabstop=2 - -" Unload this indent plugin; suppress errors because ancient Vim can't use the -" '<' suffix syntax for resetting local integer -let b:undo_user_indent - \ = 'silent! setlocal shiftwidth< softtabstop< tabstop<' diff --git a/vim/plugin/auto_backupdir.vim b/vim/plugin/auto_backupdir.vim index f15e7ce6..d15c3150 100644 --- a/vim/plugin/auto_backupdir.vim +++ b/vim/plugin/auto_backupdir.vim @@ -5,8 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_auto_backupdir') - \ || &compatible +if exists('g:loaded_auto_backupdir') || &compatible finish endif let g:loaded_auto_backupdir = 1 diff --git a/vim/plugin/auto_swapdir.vim b/vim/plugin/auto_swapdir.vim index ea41a0f0..b5f9ce3a 100644 --- a/vim/plugin/auto_swapdir.vim +++ b/vim/plugin/auto_swapdir.vim @@ -5,8 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_auto_swapdir') - \ || &compatible +if exists('g:loaded_auto_swapdir') || &compatible finish endif let g:loaded_auto_swapdir = 1 diff --git a/vim/plugin/auto_undodir.vim b/vim/plugin/auto_undodir.vim index 1d20ba95..9a686fb1 100644 --- a/vim/plugin/auto_undodir.vim +++ b/vim/plugin/auto_undodir.vim @@ -5,9 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_auto_undodir') - \ || !has('persistent_undo') - \ || &compatible +if exists('g:loaded_auto_undodir') || &compatible || !has('persistent_undo') finish endif let g:loaded_auto_undodir = 1 diff --git a/vim/plugin/big_file_options.vim b/vim/plugin/big_file_options.vim index cdced67d..cbbacc42 100644 --- a/vim/plugin/big_file_options.vim +++ b/vim/plugin/big_file_options.vim @@ -5,9 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_big_file_options') - \ || !has('autocmd') - \ || &compatible +if exists('g:loaded_big_file_options') || &compatible || !has('autocmd') finish endif let g:loaded_big_file_options = 1 diff --git a/vim/plugin/command_typos.vim b/vim/plugin/command_typos.vim index 60245a30..afc04ed3 100644 --- a/vim/plugin/command_typos.vim +++ b/vim/plugin/command_typos.vim @@ -7,9 +7,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_command_typos') - \ || !has('user_commands') - \ || &compatible +if exists('g:loaded_command_typos') || &compatible || !has('user_commands') finish endif let g:loaded_command_typos = 1 diff --git a/vim/plugin/copy_linebreak.vim b/vim/plugin/copy_linebreak.vim index 732acfea..158282bf 100644 --- a/vim/plugin/copy_linebreak.vim +++ b/vim/plugin/copy_linebreak.vim @@ -6,9 +6,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_copy_linebreak') - \ || !has('linebreak') - \ || &compatible +if exists('g:loaded_copy_linebreak') || &compatible || !has('linebreak') finish endif let g:loaded_copy_linebreak = 1 diff --git a/vim/plugin/fixed_join.vim b/vim/plugin/fixed_join.vim index 2c9e1d92..83977c2f 100644 --- a/vim/plugin/fixed_join.vim +++ b/vim/plugin/fixed_join.vim @@ -5,8 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_fixed_join') - \ || &compatible +if exists('g:loaded_fixed_join') || &compatible finish endif let g:loaded_fixed_join = 1 diff --git a/vim/plugin/mail_mutt.vim b/vim/plugin/mail_mutt.vim index 9bb4abd4..24ce01dd 100644 --- a/vim/plugin/mail_mutt.vim +++ b/vim/plugin/mail_mutt.vim @@ -5,9 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_mail_mutt') - \ || !has('user_commands') - \ || &compatible +if exists('g:loaded_mail_mutt') || &compatible || !has('user_commands') finish endif let g:loaded_mail_mutt = 1 diff --git a/vim/plugin/strip_trailing_whitespace.vim b/vim/plugin/strip_trailing_whitespace.vim index 1264a11f..1b6d2f38 100644 --- a/vim/plugin/strip_trailing_whitespace.vim +++ b/vim/plugin/strip_trailing_whitespace.vim @@ -5,8 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_strip_trailing_whitespace') - \ || &compatible +if exists('g:loaded_strip_trailing_whitespace') || &compatible finish endif let g:loaded_strip_trailing_whitespace = 1 diff --git a/vim/plugin/toggle_option_flag.vim b/vim/plugin/toggle_option_flag.vim index dcc26cce..5c848368 100644 --- a/vim/plugin/toggle_option_flag.vim +++ b/vim/plugin/toggle_option_flag.vim @@ -5,9 +5,7 @@ " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself " -if exists('g:loaded_toggle_option_flag') - \ || !has('user_commands') - \ || &compatible +if exists('g:loaded_toggle_option_flag') || &compatible || !has('user_commands') finish endif let g:loaded_toggle_option_flag = 1 diff --git a/vim/plugin/user_ftplugin.vim b/vim/plugin/user_ftplugin.vim deleted file mode 100644 index d19348ae..00000000 --- a/vim/plugin/user_ftplugin.vim +++ /dev/null @@ -1,27 +0,0 @@ -" -" user_ftplugin.vim: When switching filetypes, look for a b:undo_user_ftplugin -" variable and use it in much the same way the core's ftplugin.vim does -" b:undo_ftplugin in Vim >= 7.0. This allows you to undo your own ftplugin -" files the same way you can the core ones. -" -" Author: Tom Ryder <tom@sanctum.geek.nz> -" License: Same as Vim itself -" -if exists('g:loaded_user_ftplugin') - \ || !has('autocmd') - \ || &compatible - finish -endif -let g:loaded_user_ftplugin = 1 - -function! s:LoadUserFtplugin() - if exists('b:undo_user_ftplugin') - execute b:undo_user_ftplugin - unlet b:undo_user_ftplugin - endif -endfunction - -augroup user_ftplugin - autocmd! - autocmd FileType * call s:LoadUserFtplugin() -augroup END diff --git a/vim/plugin/user_indent.vim b/vim/plugin/user_indent.vim deleted file mode 100644 index 84b966d6..00000000 --- a/vim/plugin/user_indent.vim +++ /dev/null @@ -1,27 +0,0 @@ -" -" user_indent.vim: When switching filetypes, look for a b:undo_user_indent -" variable and use it in much the same way the core's indent.vim does -" b:undo_indent in Vim >= 7.0. This allows you to undo your own indent files -" the same way you can the core ones. -" -" Author: Tom Ryder <tom@sanctum.geek.nz> -" License: Same as Vim itself -" -if exists('g:loaded_user_indent') - \ || !has('autocmd') - \ || &compatible - finish -endif -let g:loaded_user_indent = 1 - -function! s:LoadUserIndent() - if exists('b:undo_user_indent') - execute b:undo_user_indent - unlet b:undo_user_indent - endif -endfunction - -augroup user_indent - autocmd! - autocmd FileType * call s:LoadUserIndent() -augroup END |