X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=732941ae20f8cc35c74dad34832af7e222304f52;hb=ec8f28407574099220c8a6f459df2a4a004d02b5;hp=79e709a8d1d508282a306aba6d52e8b084931f3d;hpb=faf88e1eed712ef5d999fd9609817d64cdea6769;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index 79e709a..732941a 100644 --- a/vimrc +++ b/vimrc @@ -1,6 +1,6 @@ " Vim main configuration file. -" Copyright (C) 2011-2012 Simon Ruderich +" Copyright (C) 2008-2012 Simon Ruderich " " This file is free software: you can redistribute it and/or modify " it under the terms of the GNU General Public License as published by @@ -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 @@ -198,10 +221,16 @@ endif " remove the highlighting until the next search. set hlsearch -" Display tabs, trailing space, non breakable spaces and long lines (when -" wrapping is disabled). +" Display some special characters. set list -set listchars=trail:-,extends:> +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:>,precedes:< +" Display non-breakable space as "!". if v:version >= 700 set listchars+=nbsp:! endif @@ -321,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 @@ -473,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 @@ -513,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 @@ -539,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