diff options
Diffstat (limited to 'vim')
-rw-r--r-- | vim/filemap.vim | 51 | ||||
-rw-r--r-- | vim/filetype.vim | 24 | ||||
-rw-r--r-- | vim/vimrc | 60 |
3 files changed, 74 insertions, 61 deletions
diff --git a/vim/filemap.vim b/vim/filemap.vim new file mode 100644 index 00000000..bbbf1955 --- /dev/null +++ b/vim/filemap.vim @@ -0,0 +1,51 @@ +" Filetype-specific mappings +if &compatible || v:version < 700 || !has('autocmd') + finish +endif + +" No 'loaded' guard; this file is an extension of our .vimrc, and we do want +" to reload it if the .vimrc is re-sourced. + +" Set up filetype mapping hooks +augroup filetypemap + autocmd! + + " Clear existing local leader maps if possible + autocmd FileType * + \ silent! call clear_local_maps#Clear() + + " Diff: prune sections + autocmd FileType diff + \ nmap <buffer> <LocalLeader>p <Plug>DiffPrune + \|xmap <buffer> <LocalLeader>p <Plug>DiffPrune + + " HTML: lint, URL-to-link, tidy + autocmd FileType html + \ nmap <buffer> <LocalLeader>l <Plug>HtmlLint + \|nmap <buffer> <LocalLeader>r <Plug>HtmlUrlLink + \|nmap <buffer> <LocalLeader>t <Plug>HtmlTidy + + " Perl: check, lint, and tidy + autocmd FileType perl + \ nmap <buffer> <LocalLeader>c <Plug>PerlCheck + \|nmap <buffer> <LocalLeader>l <Plug>PerlLint + \|nmap <buffer> <LocalLeader>t <Plug>PerlTidy + + " PHP: check + autocmd FileType php + \ nmap <buffer> <LocalLeader>c <Plug>PhpCheck + + " Shell: check and lint + autocmd FileType sh + \ nmap <buffer> <LocalLeader>c <Plug>ShCheck + \|nmap <buffer> <LocalLeader>l <Plug>ShLint + + " VimL: lint + autocmd FileType vim + \ nmap <buffer> <LocalLeader>l <Plug>VimLint + + " Zsh: check + autocmd FileType zsh + \ nmap <buffer> <LocalLeader>c <Plug>ZshCheck + +augroup END diff --git a/vim/filetype.vim b/vim/filetype.vim index 69847ba7..66b26455 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -324,15 +324,15 @@ augroup filetypedetect \,bash_logout \,bash_profile \,bashrc - \ let b:is_bash = 1 - \ | setfiletype sh + \ let b:is_bash = 1 + \|setfiletype sh " Korn shell autocmd BufNewFile,BufRead \ ?*.ksh \,.kshrc \,kshrc - \ let b:is_kornshell = 1 - \ | setfiletype sh + \ let b:is_kornshell = 1 + \|setfiletype sh " POSIX/Bourne shell autocmd BufNewFile,BufRead \ ?*.sh @@ -347,8 +347,8 @@ augroup filetypedetect \,shinit \,shrc \,xinitrc - \ let b:is_posix = 1 - \ | setfiletype sh + \ let b:is_posix = 1 + \|setfiletype sh " sed files autocmd BufNewFile,BufRead \ ?*.sed @@ -495,17 +495,17 @@ augroup filetypedetect " been found; strip temporary extension and re-run autocmd BufNewFile,BufRead \ /var/tmp/?*.???????? - \ if !did_filetype() - \ | call s:StripRepeat() - \ | endif + \ if !did_filetype() + \| call s:StripRepeat() + \|endif " If we *still* don't have a filetype, run the scripts.vim file that will " examine actual file contents--but only the first one; don't load the " system one at all autocmd BufNewFile,BufRead,StdinReadPost \ * - \ if !did_filetype() - \ | runtime scripts.vim - \ | endif + \ if !did_filetype() + \| runtime scripts.vim + \|endif augroup END @@ -4,9 +4,11 @@ " own without the accompanying plugins to which it refers near the end of this " file, but you'll get errors for some of the leader maps, for example. -" Load filetype settings and plugins +" Load filetype settings, plugins, and maps if has('autocmd') + let g:maplocalleader = '_' filetype plugin indent on + runtime filemap.vim endif " Options dependent on the syntax feature @@ -271,56 +273,15 @@ nmap <Leader>x <Plug>StripTrailingWhitespace " \z sets NZ English spelling (compare \u) nnoremap \z :<C-U>setlocal spelllang=en_nz spelllang?<CR> -" Use underscore for a local leader, for any plugins that use the variable -if 1 - let g:maplocalleader = '_' -endif - -" Filetype-specific mappings -if has('autocmd') && v:version >= 700 - augroup vimrc_filetype_mappings - autocmd! - - " Clear existing local leader maps - autocmd FileType * silent! call clear_local_maps#Clear() - - " Diff: prune sections - autocmd FileType diff nmap <buffer> <LocalLeader>p <Plug>DiffPrune - autocmd FileType diff xmap <buffer> <LocalLeader>p <Plug>DiffPrune - - " HTML: lint, URL-to-link, tidy - autocmd FileType html nmap <buffer> <LocalLeader>l <Plug>HtmlLint - autocmd FileType html nmap <buffer> <LocalLeader>r <Plug>HtmlUrlLink - autocmd FileType html nmap <buffer> <LocalLeader>t <Plug>HtmlTidy - - " Perl: check, lint, and tidy - autocmd FileType perl nmap <buffer> <LocalLeader>c <Plug>PerlCheck - autocmd FileType perl nmap <buffer> <LocalLeader>l <Plug>PerlLint - autocmd FileType perl nmap <buffer> <LocalLeader>t <Plug>PerlTidy - - " PHP: check - autocmd FileType php nmap <buffer> <LocalLeader>c <Plug>PhpCheck - - " Shell: check and lint - autocmd FileType sh nmap <buffer> <LocalLeader>c <Plug>ShCheck - autocmd FileType sh nmap <buffer> <LocalLeader>l <Plug>ShLint - - " VimL: lint - autocmd FileType vim nmap <buffer> <LocalLeader>l <Plug>VimLint - - " Zsh: check - autocmd FileType zsh nmap <buffer> <LocalLeader>c <Plug>ZshCheck - - augroup END -endif +" Settings for plugins +if &loadplugins -" Add packaged matchit.vim, if supported -if has('packages') - packadd! matchit -endif + " Add packaged matchit.vim, if supported + if has('packages') + packadd! matchit + endif -" Disable core plugins I don't use -if 1 + " Skip loading some plugins: " I manage plugins myself with Git and a Makefile let g:loaded_getscriptPlugin = 1 let g:loaded_vimballPlugin = 1 @@ -336,6 +297,7 @@ if 1 let g:loaded_rrhelper = 1 " I don't need extra spelling files let g:loaded_spellfile_plugin = 1 + endif " Source any .vim files from ~/.vim/config |