X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=732941ae20f8cc35c74dad34832af7e222304f52;hb=ec8f28407574099220c8a6f459df2a4a004d02b5;hp=fd788ef20aa21a242c92e9a2a525ef5464d51d42;hpb=42d4224b0c3b5b83872832d9ca9eb7ce230d3d24;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index fd788ef..732941a 100644 --- a/vimrc +++ b/vimrc @@ -88,6 +88,23 @@ if has('autocmd') endif +" HELPER FUNCTIONS + +" Check if the given syntax group is available. Thanks to bairui in #vim on +" Freenode (2012-02-19 01:15 CET) for the try/catch silent highlight idea. +if has('eval') + function! s:HasSyntaxGroup(group) + try + execute 'silent highlight ' . a:group + " \a = [A-Za-z] + catch /^Vim\%((\a\+)\)\=:E411/ " 'highlight group not found' + return 0 + endtry + return 1 + endfunction +endif + + " EDIT SETTINGS " Enable automatic file detection, plugin and indention support. @@ -148,7 +165,7 @@ if has('folding') " folding which is not what I want endif -" Only check for case if the searched word contains a capital character. +" Only check case if the searched word contains a capital character. set ignorecase set smartcase @@ -162,7 +179,8 @@ if exists('+spell') && has('syntax') endif " Allow buffers with changes to be hidden. Very important for effective -" editing with multiple buffers. +" editing with multiple buffers. Prevents the "E37: No write since last change +" (add ! to override)" warning. set hidden @@ -172,9 +190,14 @@ set hidden " colors for a dark terminal. set background=dark +" Use my color scheme if 256 colors are available. +if &t_Co == 256 + colorscheme simon +endif + " Display line numbers. set number -" But use as little space as necessary for the numbers column. Thanks to James +" But use as little space as possible for the numbers column. Thanks to James " Vega (http://git.jamessan.com/?p=etc/vim.git;a=summary). if exists('+numberwidth') set numberwidth=1 @@ -201,10 +224,12 @@ set hlsearch " Display some special characters. set list set listchars= +" Display tabs as ">--------". +set listchars+=tab:>- " Display trailing whitespace as "-". set listchars+=trail:- " Display markers for long lines when wrapping is disabled. -set listchars+=extends:> +set listchars+=extends:>,precedes:< " Display non-breakable space as "!". if v:version >= 700 set listchars+=nbsp:! @@ -325,6 +350,7 @@ endif " Write before suspending, thanks to deryni in #vim on Freenode (2011-05-09 " 20:02 CEST). To suspend without saving either unmap this or use :stop. +" Only the current buffer is written. nnoremap :update:stop " 2 gives more verbose information, use it by default. Thanks to NCS_One @@ -477,8 +503,8 @@ endif " ABBREVIATIONS " Fix some of my spelling mistakes. -iabbrev relle reelle -iabbrev reele reelle +inoreabbrev relle reelle +inoreabbrev reele reelle " SYNTAX SETTINGS @@ -517,9 +543,15 @@ if has('syntax') " Highlight lines longer than 78 characters. Thanks to Tony Mechelynck " from the Vim mailing list. It can easily be " disabled when necessary with :2match (in Vim >= 700). - if exists(':2match') - 2match Todo /\%>78v./ - else + if !&diff && exists(':2match') + " Use ColorColumn for overlong lines if available and my color + " scheme is used. + if &t_Co == 256 && HasSyntaxGroup('ColorColumn') + 2match ColorColumn /\%>78v./ + else + 2match Todo /\%>78v./ + endif + elseif !&diff match Todo /\%>78v./ endif @@ -543,6 +575,11 @@ if has('syntax') execute ' for l:x in l:spaces' \ '| call matchadd("Error", "\\%u" . l:x)' \ '| endfor' + +" Reduce visibility of tabs in contrast to normal SpecialKeys. + if &t_Co == 256 && HasSyntaxGroup('specialKeyTab') + call matchadd('specialKeyTab', '\t') + endif endif endfunction " Enable highlights for the current and all new windows. Thanks to bairui in