X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=8c16cd4b31f22de2792f622d4cefbe76d5723e29;hb=9b4244b95a76c59966a84a694b5a40068c993e65;hp=7a51eba3ba0036c069fc162009a3f6b67dcd260b;hpb=4d1cd4888b2af7f8d4c73dc7a918aff4351cc6df;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index 7a51eba..8c16cd4 100644 --- a/vimrc +++ b/vimrc @@ -190,6 +190,10 @@ if exists('+cursorline') set cursorline endif +" Highlight all matches on the screen when searching. Use (see below) to +" remove the highlighting until the next search. +set hlsearch + " Display tabs, trailing space, non breakable spaces and long lines (when " wrapping is disabled). set list @@ -364,7 +368,9 @@ if has('eval') function! s:VSetSearch() let l:temp = @@ normal! gvy - let @/ = '\V' . substitute(escape(@@, '\'), '\n', '\\n', 'g') + " Added \C to force 'noignorecase' while searching the current visual + " selection. I want to search for the exact string in this case. + let @/ = '\C' . '\V' . substitute(escape(@@, '\'), '\n', '\\n', 'g') let @@ = l:temp endfunction vnoremap * :call VSetSearch()// @@ -491,6 +497,15 @@ if has('syntax') augroup END endif +" Function to enable all custom highlights. Necessary as highlights are +" window-local and thus must be set for each new window. + function! s:CustomSyntaxHighlights() + " Not the first time called, nothing to do. + if exists('w:vimrc_syntax_run') + return + endif + let w:vimrc_syntax_run = 1 + " 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). @@ -514,6 +529,16 @@ if has('syntax') call matchadd('Error', '\%u' . s:x) endfor endif + endfunction +" Enable highlights for the current and all new windows. Thanks to bairui in +" #vim on Freenode (2012-04-01 00:22 CEST) for the WinEnter suggestion. + call CustomSyntaxHighlights() + if has('autocmd') + augroup vimrc + autocmd WinEnter * call CustomSyntaxHighlights() + augroup END + endif + " Settings for specific filetypes.